Titelbild Mikrocontroller

2.7.1. Interrupt Antwortzeiten

Die Interrupt Antwortzeit für alle freigegebenen Interrupts beträgt mindestens 4 Taktzyklen. Nach vier Taktzyklen wird das Programm ab der Adresse des Interrupt-Vektors ausgeführt. Während der vier Taktzyklen wird der aktuelle Program Counter in den Stack gesichert und der Stack-Pointer um zwei dekrementiert. An der Einsprungadresse des Interrupt-Vektors steht gewöhnlich ein Sprungbefehl, der zur eigentlichen Interrupt-Routine verzweigt. Dieser Sprung benötigt 3 Taktzyklen. Wenn ein Interrupt während der Ausführung eines Befehles auftritt, dessen Bearbeitung mehrere Takte dauert, so wird der Befehl erst vollständig beendet bevor der Interrupt bearbeitet wird. Wenn ein Interrupt auftritt, während sich die CPU im Sleep-Modus befindet, so verlängert sich die Interrupt Antwortzeit um vier Takte, die die CPU benötigt, um wieder aufzuwachen.

Die Rückkehr aus einer Interrupt-Routine benötigt ebenfalls vier Taktzyklen. Während dieser vier Taktzyklen wird die Rücksprungadresse aus dem Stack zurückgelesen, der Stack-Pointer um zwei inkrementiert und das I-Bit im Status-Register wird gesetzt.
Impressum