Hallo Leute, kann mir jemand helfen, ich will die LEDS an meinem Board (STK500) blinken lassen. Leider funktioniert es nicht mit Interrupt. Das Programm ist in Assembler und ist im Anhang! Mal eine Fage "RETI"-Befehl bedeuted, dass nach dem Interrupt an die Stelle zurückgekehrt wird, wo der Interrupt gestartet wurde, warum startet das Programm dann wieder neu mit Initialisierung.
Ohne das Programm gesehen zu haben. In den FuseBits den Watchdog aktiviert?
Der Stackpointer ist nicht initialisiert. Sprünge und Rücksprünge führen dann zu merkwürdigen Effekten. Gruss, Armin
Ohne Stackpointer Initialisierung wird das nix. Immer zuerst SPL und SPH mit den richtigen Werten (letzte RAM Adresse) belegen.
hier habe ich Stackpionter initialisiert, geht aber trotzdem nicht! Das neue Programm ist im Anhang!
Die LEDs werden in der Interruptroutine kurz eingeschalten, aber sofort wieder im Hauptprogramm ausgeschaltet. Vielleicht solltest Du im Timerinterrupt die LEDs togglen und den Zugriff im Hauptprogramm entfernen. Gruss, Armin
> ldi temp, low(RAMEND) ;Stackpointer initialisieren > out SPL, temp > ldi temp, high(RAMEND) ;Stackpointer initialisieren > out SPL, temp Du schreibst zweimal SPL statt SPL und SPH! Ansonsten teile ich Armins Ansicht...
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.