Forum: Mikrocontroller und Digitale Elektronik Timer0 -> Verzweiflung in ASM


von Feindsender64,3MHz (Gast)


Lesenswert?

Hallo liebe Gemeinde
Ich habe mich neulich an die Timer Programierung in Assembler gewagt, 
nur leider macht mein Testobjekt (ein Mega16) absolut nicht das, was er 
soll.
Auch im AVR Studio Debugger zeigt sich ein merkwürdiges Verhalten.
Damit meine ich, dass das Programm bis "sei" fehlerfrei läuft, aber ab 
"rjmp loop" springt er nicht etwa zu sich selbst, sondern setzt wieder 
bei "out TCCR0, temp" an. Dann wird das Programm wieder bis sei 
abgearbeitet und bleibt auch in der Endlosschleife. Sobald der Timer 
überläuft zeigt sich aber wieder der Sprungfehler.
Der Atmel startet beim Testen einfach neu. (Bootloader läuft wieder an)

Was kann ich da falsch gemacht haben? Stimmt etwas mit den Interrupt 
Vektoren nicht?

Würde mich freuen wenn jemand mal über den Source schauen könnte.


MFG
Scholz

von Feindsender64,3MHz (Gast)


Angehängte Dateien:

Lesenswert?

Anhang die Zweite...

von Dieter Werner (Gast)


Lesenswert?

Nach dem was man hier im Forum so allgemein liest hat der Mega16 pro 
Intvector 2 Befehlsworte reserviert um longjumps über den vollen 
Adressbereich zu ermöglichen.
Im Beispiel ist aber nur jeweils 1 Wort durch rjmp bzw. reti belegt.

von Feindsender64,3MHz (Gast)


Lesenswert?

Danke, das war das Problem. Habe die rjmp durch jmp Befehle ersetzt und 
nun scheint es zu funktionieren =)

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.