Миландр
http://forum.milandr.ru/

1886ВЕ2У АЦП
http://forum.milandr.ru/viewtopic.php?f=4&t=2497
Страница 1 из 1

Автор:  ftwkun [ 2015-апр-14 11:16 ]
Заголовок сообщения:  1886ВЕ2У АЦП

Приветствую, подскажите по работе с ацп на плате eval8a
на плате имеется
Цитата:
Для тестирования внутреннего АЦП микроконтроллера на плате установлен подключенный к порту RG1/AN2 переменный резистор R25. Он позволяет изменять напряжение на входе АЦП от нуля до +5 вольт.
пишу следующий код:
void init_adc(){
     ADCS1=0;
     ADCS0=0;
     ADFM=1;
     PCFG0=1;
     CHS3=0;
     CHS2=0;
     CHS1=1;
     CHS0=0;
     ADON=1;        
     }

void main(){
DDRF = 0x00;
DDRG =   0x00000010;
init_adc();
while(1){
    GO = 1;
    while(GO){}
    PORTF=ADRESL; 
}
}
к PORTF подключены светодиоды на плате
собственно светодиоды не горят, поворот резистора не меняет ситуацию. Подскажите, что не так?

Автор:  Alexey K. [ 2015-апр-14 18:26 ]
Заголовок сообщения:  Re: 1886ВЕ2У АЦП

Здравствуйте!
void main(){
DDRF = 0x00;
DDRG =   0x00000010;
init_adc();
while(1){
    GO = 1;
    while(GO){}
    PORTF=ADRESL; 
}
}
1.Данный код зацикливается в бесконечном цикле while (GO) {} и никогда не доходит до строчки PORTF=ADRESL.
2.Значение DDRG 0x00000010 вы задаете в шестнадцатеричном виде, что эквивалентно 00010000 в двоичном или 16 в десятичном. Если вы хотели установить второй бит в 1 , то вам следовало указать значение 0x02.

Автор:  ftwkun [ 2015-апр-15 09:04 ]
Заголовок сообщения:  Re: 1886ВЕ2У АЦП

Цитата:
1.Данный код зацикливается в бесконечном цикле while (GO) {} и никогда не доходит до строчки PORTF=ADRESL.
2.Значение DDRG 0x00000010 вы задаете в шестнадцатеричном виде, что эквивалентно 00010000 в двоичном или 16 в десятичном. Если вы хотели установить второй бит в 1 , то вам следовало указать значение 0x02.
1
Цитата:
GO/DONE:
бит состояния модуля АЦП.
Если ADON = 1, т.е. АЦП включен:
1 = модуль АЦП выполняет преобразование (устано
вка бита вызывает начало преобразования, аппаратно сбрасывается
по завершению преобразования),
0 = в модуле АЦП преобразования нет
тоесть GO сбрасывается этого и жду в цикле.
2. действительно, спасибо, заметил ошибку, всё работает.

Автор:  Alexey K. [ 2015-апр-15 09:41 ]
Заголовок сообщения:  Re: 1886ВЕ2У АЦП

ftwkun писал(а):
Цитата:
2. действительно, спасибо, заметил ошибку, всё работает.
Не за что, обращайтесь.

Страница 1 из 1 Часовой пояс: UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/