Forum: Mikrocontroller und Digitale Elektronik Timer Interrupt Mega16


von Martin (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!
Ich habe ein Problem mit dem Timer overflow interrupt.
Er wird nicht ausgelösst. Ich programmieren mit Imagecraft ICC AVR.
Kann mir jemand helfen, was ich flasch gemacht oder vergessen habe?

von peter dannegger (Gast)


Lesenswert?

Du glaubst doch nicht im Ernst, daß sich jemand die Mühe macht,
rauszukriegen, was 0x80 und die anderen kryptischen Werte bedeuten.

Schreibs einfach so hin, daß man es auch lesen kann, z.B. so:

void t2_init( void )
{
  OCR2 = (u8)(XTAL / 1024.0 * 5e-3 - 1 + 0.5);  // ~ 5msec
  TCCR2 = 1<<WGM21^1<<CS20^1<<CS21^1<<CS22;     // CTC, 1/1024
  TIMSK |= 1<<OCIE2;                            // enable T2 compare
interrupt
}


Peter

von Martin (Gast)


Lesenswert?

Ah Sorry, dachte das gehört zum Grundwissen eines AVR Programmiers ;-)
Es geht mir in erster linie auch nicht um die ansteuerung des timer,
sondern um den interrupt. Ich kriege einfach keinen Interrupt. Auch
beim TWI nicht. Ich wollte nur wissen, ob ich ihn richtig deklariert
habe. Benutze den Imagecraft compiler noch nicht sehr lange...

von Jörg (Gast)


Lesenswert?

ich kenn mich zwar nicht in der Programmierung der AVR's in C aus aber
Du mußt bestimmt auch irgendwo einen Befehl haben um generell
Interrupts zu aktivieren.

In Assembler --> sei <--

Gruß Jörg

von Martin (Gast)


Lesenswert?

Du meinst das I Bit im SREG setzen?
Das erledige ich mit SREG = 0x80.

Das Timer interrupt flag setze ich auch.
Muss sonst noch was gesetzt werden, um die interrupts zu aktivieren?

Gruss

von Denis (Gast)


Lesenswert?

korrekte Interuptvektoren?

von Martin (Gast)


Lesenswert?

Jop, jetzt funzts. Ist mir nicht ganz klar wiesos nich von anfang an
ging... aber hauptsache jetzt funzts ;-)

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.