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)
Hallo, Du hast offenbar den Stackpointer nicht gesetzt, so führt RETI in die Wüste aber nicht zurück. Gruß aus Berlin Michael
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.