Seite 1 von 1

Reihenfolge bei der Interruptbehandlung

Verfasst: Di 6. Dez 2011, 16:59
von Heinrichs
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) 25913 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!

.