avr und assembler timer problem

Gast #397013
Lesenswert?

moin, ich schlage mich grad mit dem timer des mega 32 rum.


hier mal etwas code:

.org 0x000                    ;reset sprungmarke
         rjmp main
.org 0x016                    ;timer0 overflow
         rjmp timer0

main:

         ldi r16, 0b0000010   ;Prescaler einstellen
         out TCCR0, r16       ;und reinladen

         ldi r16, 0b00000001  ;Timer starten
         out TIMSK, r16

         ;noch n bisschen code

         sei                  ;Interrupts einschalten

ende:  rjmp ende      ;Endlosschleife

;
;Ab hier die kommt der Timer
;
timer0:
         ;das was der timer so alles tun soll
         reti

nach dem reti kehrt das avr-studio zum "rjmp timer0" zurück und führt
den befehl gleich nochmal aus (auch der mikrocontroller selbst macht
keine sinvollen sachen...) Folgende Fehlermeldung kommt beim avr-studio
mit (obwohl es weiterläuft):  AVR Simulator: Invalid opcode 0xffff at
address 0x003030

meine frage: wie schaffe ich es, das nach der abarbeitung des timers
wieder zum original code gesprungen wird. (indem fall also wieder in
die endlosschleife)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren