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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.