-
-
Erfahrener Benutzer
Robotik Visionär
Die Hardware löscht das Flag zum Signaliseren des Interrupts und das I.Flag im SREG damit kein weiterer Interrupt angesprungen wird.
Ein Austauschen der Rücksprung adresse ist nicht gut. Dann kann man nicht mehr zurück zum Hauptprogramm und kann den rest des Stacks, was immer da noch von Unterprogrammen USW drauf ist nicht nutzen.
Wenn man nicht zurück will, sollte man den Stack gleich ganz neu initialisieren, da sammelt sich nur Müll.
Zum sprung nach der ISR könnte man die Sprungadresse auf den Stack tun und dann per RETI springen, oder man macht es übersichtlicher per SEI und eien normalen Sprung.
Wenn man später noch zurück zu der Stelle will, wo der Interrupt auftrat, kann man das auch: dann bleibt aber die alte Rücksprungadresse auf dem Stack und wird dann, wenn man wietermachen will mit einem RET genutzt.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen