Device: atmega32. Kann mir jemand erklären, warum das Interupt nicht ausgelöst wird. Die anderen Timer funktionieren problemlos. void init_timer_8_2(void) { TCNT2 = 0; ASSR |= 1<<AS2; //Internal clocked TCCR2 = (1<<CS22)|(1<<CS21)|(1<<CS20);//CPU-Takt/1024 TIMSK |= TOIE2;//Overflowinterrupt sei(); } SIGNAL(SIG_OVERFLOW2) { //auszuführender Code }
> warum das Interupt nicht ausgelöst wird...
Was veranlasst Dich zu der Annahme, dass der Interrupt gar nicht
ausgelöst wird? Hast Du es im Simulator gesehen oder macht die Hardware
nichts? Solange Du nicht schreibst, was 'auszuführender Code' in der
ISR ist, kann das alles Mögliche sein...
ich habe den Code über einen anderen Timer (mit höherem Takt) ausführen lassen und siehe da es funktioniert. Probiere das Ganze gearde in AVR-Studio aus...
Vergleich doch mal die einzelnen Zeilen, in denen du die Register setzt. Speziell wie die zu setzenden Bits ausgewählt werden. Fällt dir was auf?
Vielen Dank für den hübsch ausgedrückten Hinweis ;-) Damit wäre die Sache geklärt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.