PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Simulation mit Atmel Studio7



rogerberglen
19.03.2018, 17:16
Hallo zusammen,
habe mal wieder Zeit gefunden ein wenig zu programmieren.
Ich nutze den Watchdog-Timer des Attiny2313 als zusätzlichen Timer für das Multiplexing einer 7-Segment Anzeige.
Im Simulator des Studio7 wird der Interrupt des Watchdog-Timers auch ausgelöst und meine Multiplexroutine abgearbeitet.
Aber danach wird diese kein weiteres Mal mehr aufgerufen.
Nach langem Suchen habe ich nun festgestellt, dass der global freigebenene Interrupt mit "SEI" von irgendwoher gelöscht wird. Das I-Flag im Statusregister ist dann nicht mehr gesetzt.
Ich muss dieses jedesmal am Ende meiner Multiplexroutine wieder mit SEI anschalten.
Das kann doch nicht richtig sein? Oder?

avr_racer
19.03.2018, 19:45
mit was wird dann die ISR also der Interrupt verlassen ?

Wenn mit nem RET ist das die Ursache warum der SEI nicht wieder automatisch gesetzt wird, also würde ich mal sagen das es daran liegt und zu beheben mit einem RETI wäre. Man beachte das I hinter dem RET auch für Return Interrupt.

Aber wie sieht denn dein Quellcode aus ?

rogerberglen
20.03.2018, 16:51
Ach du lieber Himmel! Ja ich habe anstatt RETI nur RET eingegeben. Manchmal stellt man sich aber auch blöd an um hinter die einfachsten Sachen zu kommen.
Vielen Dank nochmal für den Hinweis

avr_racer
20.03.2018, 17:55
kein Ding

vllt hilft dir dies hier weiter
https://www.roboternetz.de/community/forums/70-Bascom-C-ASM-Sketch-Codesammlung-Programmschnipsel