Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: АЦП в Atmega8
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
AVRMan
Пробовал так:

static inline void ADCInit(void)
{
ADCSRA |=_BV(ADPS1);
ADCSRA |=_BV(ADPS0);
ADMUX |=_BV(REFS0);
ADCSRA |=_BV(ADEN);
ADCSRA |=_BV(ADIE);
}


int main(void)
{
PortInit();
LCMInit();
TimerInit();
ADCInit();

asm("sei");

ADCSRA |=_BV(ADSC);
while(1)
{

asm("nop");
}
}

ISR(TIMER1_COMPA_vect)
{
SetCursor(0x05);
ShowNumber(Count); // Мои функция работы с ЖКД
ShowNumber(Count2);

}

ISR(ADC_vect)
{
Count=ADCH;
Count2=ADCL;
ADCSRA |=_BV(ADSC);
}

Пробовал так:

ISR(ADC_vect)
{
Count=ADCH;
Count2=ADCL;
SetCursor(0x05);
ShowNumber(Count); // Мои функция работы с ЖКД
ShowNumber(Count2);
ADCSRA |=_BV(ADSC);
}

Результат один. При включении выводится измеренное значение и не меняется. При след. включении новое. Измерения дают прав. рез-ты. Подскажите пожалуйста. В чём дело???
SysRq
А вы почитайте (в datasheet'е на МК) в какой последовательности необходимо считывать ADCL и ADCH, и как этот процесс происходит.
777777
Цитата(SysRq @ Nov 19 2008, 19:32) *
А вы почитайте (в datasheet'е на МК) в какой последовательности необходимо считывать ADCL и ADCH, и как этот процесс происходит.

А еще лучше доверить это компилятору и писать:
Код
Count=ADC;

(разумеется, при условии, что Count двухбайтовый), на что он сгенерирует примерно такой код:
Код
     83a:    24 b1           in    r18, 0x04; 4
     83c:    35 b1           in    r19, 0x05; 5
     83e:    30 93 0e 01     sts    0x010E, r19
     842:    20 93 0d 01     sts    0x010D, r18
AVRMan
Цитата(777777 @ Nov 19 2008, 20:54) *
А еще лучше доверить это компилятору и писать:
Код
Count=ADC;

(разумеется, при условии, что Count двухбайтовый), на что он сгенерирует примерно такой код:
Код
     83a:    24 b1           in    r18, 0x04; 4
     83c:    35 b1           in    r19, 0x05; 5
     83e:    30 93 0e 01     sts    0x010E, r19
     842:    20 93 0d 01     sts    0x010D, r18

Спасибо огромное. Помогло.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.