Миландр

Ключевым подразделением нашей компании является Центр Проектирования интегральных микросхем
Текущее время: 2017-сен-26 21:22

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: 1886ВЕ2У АЦП
СообщениеДобавлено: 2015-апр-14 11:16 
Не в сети

Зарегистрирован: 2015-апр-14 11:02
Сообщения: 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 подключены светодиоды на плате
собственно светодиоды не горят, поворот резистора не меняет ситуацию. Подскажите, что не так?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 1886ВЕ2У АЦП
СообщениеДобавлено: 2015-апр-14 18:26 
Не в сети

Зарегистрирован: 2014-авг-18 16:19
Сообщения: 4
Откуда: ЗАО "ПКК Миландр"
Здравствуйте!

Код:
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.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 1886ВЕ2У АЦП
СообщениеДобавлено: 2015-апр-15 09:04 
Не в сети

Зарегистрирован: 2015-апр-14 11:02
Сообщения: 2
Цитата:
1.Данный код зацикливается в бесконечном цикле while (GO) {} и никогда не доходит до строчки PORTF=ADRESL.
2.Значение DDRG 0x00000010 вы задаете в шестнадцатеричном виде, что эквивалентно 00010000 в двоичном или 16 в десятичном. Если вы хотели установить второй бит в 1 , то вам следовало указать значение 0x02.


1
Цитата:
GO/DONE:
бит состояния модуля АЦП.
Если ADON = 1, т.е. АЦП включен:
1 = модуль АЦП выполняет преобразование (устано
вка бита вызывает начало преобразования, аппаратно сбрасывается
по завершению преобразования),
0 = в модуле АЦП преобразования нет

тоесть GO сбрасывается этого и жду в цикле.
2. действительно, спасибо, заметил ошибку, всё работает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 1886ВЕ2У АЦП
СообщениеДобавлено: 2015-апр-15 09:41 
Не в сети

Зарегистрирован: 2014-авг-18 16:19
Сообщения: 4
Откуда: ЗАО "ПКК Миландр"
ftwkun писал(а):
Цитата:
2. действительно, спасибо, заметил ошибку, всё работает.


Не за что, обращайтесь.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB