roboforum.ru

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

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

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

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;
}

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

avr123.nm.ru » 03 июн 2008, 10:00

После переключения входа АЦП рекомендую сделать холостое АЦП.

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

Ruslan » 03 июн 2008, 10:07

А сколько времени я на этом потеряю? Вопрос важен в применении к датчикам линии в сумо.

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

avr123.nm.ru » 03 июн 2008, 10:22

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


Подумайте !!!

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

SSG » 03 июн 2008, 12:50

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

АЦП преобразование выполняется 13 тактов АЦП в нормальном режиме,14 — в дифференциальном режиме и 25 — при первом запуске после включения АЦП (у атмегов :)). Вот и считайте.


Rambler\'s Top100 Mail.ru counter