Benutz mal diese Zeilen hier um den ADC zu initialisieren
Code:
void ADC_Init(void) // ADC initalisieren
{
ADMUX = (1<<REFS1) | (1<<REFS0); // Interne Referenzspannung nutzen
ADCSRA = (1<<ADPS1) | (1<<ADPS0); // Frequenzvorteiler
ADCSRA |= (1<<ADEN); // ADC aktivieren
ADCSRA |= (1<<ADSC); // Eine ADC-Wandlung
while (ADCSRA & (1<<ADSC)) // Warten bis Wandlung abgeschlossen ist
Ergebniss = ADCW; // Ergebniss der ersten Wandlung speichern
}
Du musst nämlich nachdem initialisieren erstmal eine Wandlung machen um das Register leer zu räumen.
Und das hier brauchste natürlich auch:
SREG = (1<<7); // Global Interrupt Enable
Anschließend setzt du in der Timer-ISR nur noch das Enable Bit von dem ADC und ließt ihn aus.
Lesezeichen