Mam mały problem z uruchomieniem ADC w C. Na wyświetlaczu otrzymuje wynik przetwarzania ilość poziomów kwantywizacji ale nie zmienia on się po zmianie napięcia wejściowego na ADC tak jakby ADC było włączone w single conversion mode cały czas jest to samo. Ale jak przekręcę potencjometr i zresetuje to znów otrzymuje poprawny wynik ale już się on nie zmienia, wydaje się ze nie są uaktualniane rejestry ADCH i ADCL. I po pierwszej konwersji ADC zatrzymuje się ale dlaczego ?
#define F_CPU 16000000L
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
SFIOR=0x00; /* ADC inicjalizacja free run 10 bit */
ADMUX=0x00;
ADCSRA=0xE7;
LCD_ins(1);
for (;;){
a=ADCH<<8;
b=ADCL;
a=a|b;
c=a/1000;
a=a-(c*1000);
c=c+'0';
LCD_dana(c);
c=a/100;
a=a-(c*100);
c=c+'0';
LCD_dana(c);
c=a/10;
a=a-(c*10);
c=c+'0';
LCD_dana(c);
a=a+'0';
LCD_dana(a);
_delay_ms(1000);
LCD_ins(1);
_delay_ms(1000);
}
}