Einfache Mikrocontroller wie der Atmega, der im Arduino verwendet wird, haben zwei CPU-Zustände. Es befindet sich entweder bei der Ausführung

  • des normalen Anwendungsprogramms oder
  • einer Interrupt Service Routine (ISR).

Das Unterbrechen des Anwendungsprogrammes führt zum Sprung in die Interruptausführung. Ist die CPU in der Interruptausführung, kann diese nicht durch einen erneuten Interrupt unterbrochen werden. Wenn ein neuer Interrupt angefordert wird, muss die CPU zuerst die ISR abarbeiten und anschließend in die normale Programmausführung zurück springen um anschließend in die nächste ISR zu springen.

Komplexere Mikrocontroller priorisieren die Interrupts durch Level. Je geringer die Levelzahl ist, desto höher ist die Priorität. Höher priorisierte Interrupts können geringere unterbrechen, wodurch eine Verschachtelung entstehen kann.

 

Wenn gewünscht, kann diese Verschachtelung auf dem AVR durch die Programmierung nachgebildet werden - dies kann jedoch nur mit hohem Programmieraufwand erfolgen.

In diesem Kurs wird nur auf einfache Mikrocontroller ohne programmierte Verschachtelung eingegangen.

Zuletzt geändert: Freitag, 21. Januar 2022, 11:27