roboforum.ru

Технический форум по робототехнике.

Проблема с АЦП - пропуски

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Проблема с АЦП - пропуски

Сообщение Ruslan » 03 июн 2008, 09:45

У меня почему-то не всегда правильно осуществляется конвертация АЦП, если делатьее по нескольким ногам подряд. Приходится повторять или дублировать вызов функции. Внизу кусок кода - посоветуйте, если что не так. Проц - Мега8L.

Код: Выделить всёРазвернуть
//Инициализация:
ADCSR |= (( 1 << ADEN  ) | ( 1 << ADSC  ) | ( 1 << ADPS2 ) | ( 1 << ADPS1 ));
while ( ADCSR & ( 1 << ADSC ) );          /* wait for complete conversion */


uint16_t ADCIN( uint8_t channel )
{
    ADMUX  = ( 1 << ADLAR ) | ( 1 << REFS0 ) | channel;
    ADCSRA = ( 1 << ADEN  ) | ( 1 << ADSC  );
    DELAY_US( 64 );  // 64 microseconds delay
    while ( ADCSR & ( 1 << ADSC ) );
return ADCH;
}
Аватара пользователя
Ruslan
 
Сообщения: 603
Зарегистрирован: 03 июн 2007, 22:32
Откуда: Москва
ФИО: Руслан

Re: Проблема с АЦП - пропуски

Сообщение avr123.nm.ru » 03 июн 2008, 10:00

После переключения входа АЦП рекомендую сделать холостое АЦП.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Проблема с АЦП - пропуски

Сообщение Ruslan » 03 июн 2008, 10:07

А сколько времени я на этом потеряю? Вопрос важен в применении к датчикам линии в сумо.
Аватара пользователя
Ruslan
 
Сообщения: 603
Зарегистрирован: 03 июн 2007, 22:32
Откуда: Москва
ФИО: Руслан

Re: Проблема с АЦП - пропуски

Сообщение avr123.nm.ru » 03 июн 2008, 10:22

RiO писал(а):А сколько времени я на этом потеряю ?


Подумайте !!!
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Проблема с АЦП - пропуски

Сообщение SSG » 03 июн 2008, 12:50

RiO писал(а):А сколько времени я на этом потеряю?

АЦП преобразование выполняется 13 тактов АЦП в нормальном режиме,14 — в дифференциальном режиме и 25 — при первом запуске после включения АЦП (у атмегов :)). Вот и считайте.
I live My life!
Аватара пользователя
SSG
 
Сообщения: 1058
Зарегистрирован: 15 янв 2007, 19:23
Откуда: Беларусь, Барановичи
прог. языки: С для МК, Delphi для ПК


Вернуться в Микроконтроллеры

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 3