Forum: Compiler & IDEs MSP430 ISR von gleichem Interrupt unterbrechen?


von Manuel (Gast)


Lesenswert?

Hallo,

ich frage mich gerade, ob beim MSP430 beim Ausführen einer ISR der 
gleiche Interrupt diese ISR unterbrechen kann - oder wird dieser 
"verschluckt". Das Flag lösche ich manuell, da es sich um ein "multiple 
source flag" handelt.


gruß

Manuel

von Uhu U. (uhu)


Lesenswert?

Wenn ein Interrupt eintrifft, wirden Flag-Register PC gepusht und die 
Interrupts gesperrt. Wenn ein weiterer Interrupt eintrifft, wird die 
laufende ISR nicht unterbrochen, es sei denn, du hast innerhalb der 
ISR die Interrupts wieder freigegeben - was man aber nur in wirklich gut 
begründeten Ausnahmefällen tun sollte.

reti popt das Statusregister wieder vom Stack und kehrt an die Stelle 
zurück, an der der Interrupt erkannt wurde.

Steht schon wieder ein weiterer Interrupt an, wird nach der Ausführung 
des Befehls, auf den zurückgesprungen wurde, eine neue Interruptsequenz 
gestartet. (Natürlich nur, wenn die ISR nicht das Interrupt-Enable-Bit 
im Statusregister auf dem Stack rückgesetzt hat - was man auch nur in 
Ausnahmefällen macht.)

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.