Interrupt-Verständnisfrage

Gast #2993181
Lesenswert?

Hallo Leute,

ich habe mal eine Verständnisfrage. Ich muss ein Programmablauf 
erklären, weiss aber nicht weiter. Und zwar besteht mein Programm aus 5 
Modulen, diese Module setzen sich zusammen aus State machines und werden 
nacheinander zyklisch aufgerufen. Bei einem IR-Befehl findet ein 
I2C-Interrupt statt. Die State machines werden ja nacheinander 
aufgerufen, aber ein interrupt ist doch zum unterbrechen der CPU 
gedacht. Wie ist das zu Verstehen?

Gruss
#2993231
Lesenswert?

Das ist so zu verstehen, dass dein Tagesablauf Routine ist und immer 
gleich aussieht

  in der Früh aufstehen
  Kaffee trinken
  ins Büro fahren
  vormittag arbeiten
  mittagessen
  nachmittag arbeiten
  abendessen
  schlafen


also deine ganz normalen täglichen State-Maschines, die du ständig 
abarabeitest.

Und irgendwann, du weißt nicht wann, kommt der Hausmeister rein und 
schreit "Feuer!", worauf hin du deine gerade laufende Tätigkeit 
unterbrichst, die vorgesehenen Aktionen für diesen Fall durchführst und 
nachdem die Feuerwehr wieder weg ist, machst du dort weiter, wo du 
unterbrochen wurdest.
#2993305
Lesenswert?

Prototyp schrieb:
> aber ein interrupt ist doch zum unterbrechen der CPU
> gedacht.

Genau so ist es. Hat er sein Ding gemacht, kehrt er genau an die 
Unterbrechungsstelle zurück und macht weiter. Das unterbrochene Programm 
merkt also nichts davon.

Du hast wohl vermutet, er hinterläßt Chaos. Nein, sowas kann man sich 
beim Programmieren nicht leisten.
In C kümmert sich der Compiler darum, in Assembler mußt Du selber darauf 
achten, daß durch den Interrupt nichts zerstört wird.


Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren