Reihenfolge bei der Interruptbehandlung

Hier können Sie Hilfe erhalten.
Antworten
Heinrichs
Beiträge: 173
Registriert: Do 21. Okt 2010, 18:31

Reihenfolge bei der Interruptbehandlung

Beitrag von Heinrichs » Di 6. Dez 2011, 16:59

Was geschieht, wenn mehrere Interrupt-Ereignisse gleichzeitig auftreten? Wird nur eine Interruptroutine aufgerufen? Oder werden vielleicht alle ausgelöst, wobei man sich dann noch fragen könnte: in welcher Reihenfolge?

Mancher wird vielleicht sagen: Der Fall, dass zwei oder mehrere Interrupt-Ereignisse gleichzeitig auftreten, ist so unwahrscheinlich, dass er praktisch nicht vorkommt, und deswegen nur von theoretischem Interesse ist. Aber das stimmt nicht. Schon wenn zwei Interruptereignisse während einer Interrupt-Sperrphase (z. B. bei der Bearbeitung einer Interruptserviceroutine) auftreten, gelten sie für den Mikrocontroller als gleichzeitig.

bild0.jpg
Diese Schaltung verdeutlicht, wie der Mikrocontroller auf Interruptereignisse reagiert
bild0.jpg (26.15 KiB) 16445 mal betrachtet

Der Attiny kann sich in gewissem Umfang Interrupt-Ereignisse merken. Diese werden dann in der Reihenfolge der Interruptvektortabelle abgearbeitet. Treten während einer Interrupt-Sperrung allerdings mehrere Interrupt-Ereignisse des gleichen Typs auf, wird die zugehörige Routine nur ein einziges Mal ausgeführt.

Warum das so ist, das können Sie in dem Beitrag aus dem Anhang nachlesen. Viel Spaß dabei!

.
Dateianhänge
Bemerkungen_zur_Reihenfolge_bei_der_Interruptbehandlung.zip
Genauere Informationen zur Interrupt-Reihenfolge
(28.06 KiB) 1520-mal heruntergeladen

Antworten