Hallo,
Folgendes Szenario:
Im Mainprogramm ist eine whileschleife, welche die CPU ununterbrochen in den Idlemode schickt.
In einer Timerinterruptbehandlungsroutine sind ein paar Aktionen.
Gedacht ist es so: Hat der Timer seine Arbeit erledigt, wechselt die CPU wieder zurück ins Hauptprogramm und legt die CPU in der Whileschleife schlafen.
Was passiert jetzt, wenn gerade der Befehl zum schlafengehen kommt und im gleichen Moment ein Timerinterrupt. Laut meiner Mikroprozessorvorlesung arbeitet die CPU den vorigen Befehl noch zu Ende ab. Dies würde nach meinem Verständnis dazu führen, dass a) der Interrupt kommt, b) der Befehl "Schlafenlegen" zuendebearbeitet wird und c) die CPU dann schläft und der Timerinterrupt dann für immer und ewig blockiert ist, weil er gerade in der Behandlungsroutinde steckt.
In mein Szenario korrekt? Oder was ist an diesem Denkansatz falsch?
MfG,
Markus