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.
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.
ldi rtimerstatus,0x00000001 zumindest ungewöhnlich :-), kann sein, dass das sogar richtig übersetzt wird.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.