Forum: Compiler & IDEs Wofür ist das I-Flag beim 8051 gut?


von Schwimmbadpinkler (Gast)


Lesenswert?

Das I-Flag wird vom Interrupt automatisch gesetzt, vom RETI-Befehl 
rueckgesetzt. Aber was bringt mir das?

von Frage nicht verstanden, antworte trotzdem (Gast)


Lesenswert?

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.

von Peter D. (peda)


Lesenswert?

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.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

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
von (prx) A. K. (prx)


Lesenswert?

6502 != 8051

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.