Forum: Mikrocontroller und Digitale Elektronik Timer2 Interrupt löst nicht aus.


von Julius Krebs (Gast)


Lesenswert?

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
}

von johnny.m (Gast)


Lesenswert?

> 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...

von Julius Krebs (Gast)


Lesenswert?

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...

von uwegw (Gast)


Lesenswert?

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?

von Julius Krebs (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.