В главную не проходит, пишу в ветку. Помогите, кто может!!!! Полный дурдом с АЦП в AtTiny26!!!!
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено AVD 17 октября 2003 г. 16:14
В ответ на: Подскажите, надписи на лицевой панели (типа ZERO, MENU)лучше по английски или по русски писать? отправлено 220V 17 октября 2003 г. 16:07

Опрашиваю АЦП через 50 мс по таймеру, результат сдвинут влево:

ADCMUX = 0b00100000;
SETBIT(ADCSR, ADEN);
SETBIT(ADCSR, ADSC);

while (!ADC_complet)
ADC_complet = 0;

if (ADCH > 128)
{
SETBIT(PORTA, PA6);
}
else
{
CLEARBIT(PORTA, PA6);
}

ADC_complet = 1 устанавливается в преывании АЦП.
Все замечательно работает, резистор крутим - светодиод моргает.
Включаем другой канал ADCMUX = 0b00101000, PA5. Здесь тоже все нормально,
моргает другой светодиод.

Но!!!!

Как только начинаем читать не через 50 мс, а непрерывно в цикле - вообще ничего не работает, не читается ни первый, ни второй канал.

Другая ситуация. Читаем последовательно два канала:

ADCMUX = 0b00100000;
SETBIT(ADCSR, ADEN);
SETBIT(ADCSR, ADSC);

while (!ADC_complet)
ADC_complet = 0;

if (ADCH > 128)
{
SETBIT(PORTA, PA6);
}
else
{
CLEARBIT(PORTA, PA6);
}


ADCMUX = 0b00101000;
SETBIT(ADCSR, ADEN);
SETBIT(ADCSR, ADSC);

while (!ADC_complet)
ADC_complet = 0;

if (ADCH > 128)
{
SETBIT(PORTA, PA5);
}
else
{
CLEARBIT(PORTA, PA5);
}

Первый канал вообще не читается, от второго моргают оба светодиода. Если опрашивать каналы через 50 мс, то начинается какое то перекрестное взаимодействие.


Короче, полный дурдом. Если кто сталкивался, помогите!!!! Перерыл весь даташит, аппликухи - вроде бы все правильно делаю. Но не получается!!

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru