Forum: Mikrocontroller und Digitale Elektronik Timerinterrupt geht nicht


von haderlump (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen
ich bin Neuling bei der AVR-Programmierung.
Ich möchte per Timeroverflow einen Interrupt auslösen. Leider sehe ich 
im Studio4 keine Reaktion, wenn der timer0 überläuft. Mache ich was 
falsch ?
Muß ich irgendwo etwas einstellen?
ASM-Code ist angefügt.

von Rolf Magnus (Gast)


Lesenswert?

Fällt dir zwischen:

        STS     TCCR0B+$20, temp

und

        STS     TIMSK0,temp

irgendein Unterschied auf?
Übrigens: Solange deine Hauptschleife nichts macht, ist die ISR so ok, 
aber sobald das nicht mehr der Fall ist, mußt du Register (und auch das 
SREG) sichern.

von crazy horse (Gast)


Lesenswert?

ldi   rtimerstatus,0x00000001

zumindest ungewöhnlich :-), kann sein, dass das sogar richtig übersetzt 
wird.

von Johannes M. (johnny-m)


Lesenswert?

Deine Vektortabelle ist Schrott! Der Mega168 hat 16 KiB Flash, und 
dementsprechend sind die Interrupt-Vektoren 32 Bit lang. Da reichen rjmp 
und reti nicht, um die auszufüllen, die sind nämlich nur 16 Bit lang. 
Warum übernimmst Du nicht einfach die Tabelle aus dem Datenblatt?

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.