Das I-Flag wird vom Interrupt automatisch gesetzt, vom RETI-Befehl rueckgesetzt. Aber was bringt mir das?
Die Flags werden auch bei gesperrten Interrupts gesetzt. Es wird dann aber keine ISR ausgeführt und es kommt kein RETI. Du kannst also darauf pollen und musst die Flags selbst löschen.
Schwimmbadpinkler schrieb: > Das I-Flag wird vom Interrupt automatisch gesetzt, vom RETI-Befehl > rueckgesetzt. Aber was bringt mir das? Der 8051 hat kein I-Flag. Wenn Du das EA-Bit meinst, das wird nur in SW beeinflußt. Das RETI beeinflußt nur die Prioritätslogik, deren Bits sind aber nicht von außen zugreifbar.
Ich kenne das Interrupt-disable-Flag beim 6502. Das arbeitet wie beschrieben und soll verhindern, dass während einer Interruptbehandlung noch ein Interrupt dazwischenfuhrwerkt. Man kann z.B. innerhalb einer längeren Interruptroutine das I-Flag aber zurücksetzen und damit eine Ausführung eines kurzen oder wichtigeren Interrupts erlauben, das Programm sollte nach dessen RETI zur ersten Interruptroutine zurückspringen.
:
Bearbeitet durch User
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.