Hallo zusammen,

ich mache im Moment etwas mit vielen Timern und Interrupts. Der Overflow-Interrupt funktioniert auch, Code:
Code:
ISR(TIMER1_OVF_vect)              // Timer1 Überlauf
{
    TCNT1 = 64202;                   //64202 vorladen
    POS_LED_TOGGLE ();
}
Das "POS_LED_TOGGLE ();" kann ich wunderbar auf dem Oszi sehen, die Zeiten stimmen auch (83µs)

Jetzt soll der ADC bei jedem Überlauf gestartet/getriggert werden und wenn er fertig ist soll er einen Interrupt auslösen:
Code:
void POS_LDR_INIT (void)
{
    ADCSRA |= (1 << ADEN) | (1 << ADATE) | (1 << ADIF);    // ADC enable + triggern enable + interrupt wenn fertig
    SFIOR |= (1 << ADTS2) | (1 << ADTS1);                // triggern bei timer1 überlauf
    sei();
}
Das LED_TOGGLE hab ich aus dem Timer1-Interrupt rausgeschmissen, dafür hier hinein gepackt:
Code:
ISR(ADC_vect)
{
    POS_LED_TOGGLE ();
}
Ich hab aber auf dem Oszi ein dauerhaftes high (<- kommt vom INIT). Nix Rechteck...

Weis jemand warum? Hab ich irgend ein Register beim ADC vergessen?

Viele Grüße und vielen Dank schonmal
-schumi-

PS: µC = Atmega32, Compiler = AVR-GCC

EDIT: Hier gibts alle Sources als Zip: http://dl.dropbox.com/u/19005544/RN-ADC-Interrupt.zip