Interrupts n Wozu Interrupts n Interruptmodell n Einige

  • Slides: 12
Download presentation
Interrupts n Wozu Interrupts? n Interruptmodell n Einige Attiny-Interrupts n INT 0 -Interrupt im

Interrupts n Wozu Interrupts? n Interruptmodell n Einige Attiny-Interrupts n INT 0 -Interrupt im Registermodell n INT 0 -Interrupt mit High-Level-Befehlen n USART-Interrupt V 1. 0 - Copyright 2009 by G. Heinrichs

Wozu Interrupts (I) Beispiel: Blinkzeit über Taster T 0 einstellen Ohne Interrupts muss T

Wozu Interrupts (I) Beispiel: Blinkzeit über Taster T 0 einstellen Ohne Interrupts muss T 0 durch entsprechende Befehle im Programm permanent überprüft werden. Gefahr: T 0 -Signal wird „übersehen“, weil Mikrocontroller gerade mit anderen Befehlen beschäftig ist. Unbequem: Evtl. viele T 0 -Überprüfungen im Programm erforderlich

Wozu Interrupts (II) Beispiel: Blinkzeit über Taster T 0 einstellen Mit Interrupts löst die

Wozu Interrupts (II) Beispiel: Blinkzeit über Taster T 0 einstellen Mit Interrupts löst die Attiny-Hardware einen Sprung zu einem bestimmten Programmteil aus, wenn T 0 betätigt wird. Der „normale“ Programmablauf wird dazu unterbrochen. Keine Gefahr, dass T 0 -Signal „übersehen“ wird Bequem: Keine Befehle zur T 0 -Überprüfungen im normalen Programmablauf

Interruptmodell Hauptprogramm Wenn der Attiny läuft. Interruptund läuft. . . zur Routine springt, Durch

Interruptmodell Hauptprogramm Wenn der Attiny läuft. Interruptund läuft. . . zur Routine springt, Durch T 0 wird für alle INT 0 erausgelöst weiteren Interrupts Hauptprogramm wird gesperrt. Diese unterbrochen Sperrung wird erst Sprung zur Marke aufgehoben, wenn „Schneller: “ und der Attiny zum Xxx ausführen Hauptprogramm Rückkehr zum zurückkehrt. Hauptprogramm

Attiny-Interrupts Signal an Port. D. 2, z. B. mit Taster T 0

Attiny-Interrupts Signal an Port. D. 2, z. B. mit Taster T 0

INT 0 -Interrupt (High-Level) INT 0 ermöglichen INT 0 konfigurieren Interrupts global ermöglichen Low

INT 0 -Interrupt (High-Level) INT 0 ermöglichen INT 0 konfigurieren Interrupts global ermöglichen Low Level Falling Rising Changing INT 0 eine Routine durch Marke zuordnen INT 0 -Routine durch Return abschließen

Beispiel 1. Toggeln 2. Blinkzeit

Beispiel 1. Toggeln 2. Blinkzeit

INT 0 -Interrupt (Registermodell) INT 0 konfigurieren (Falling) INT 0 ermöglichen Interrupts ermöglichen

INT 0 -Interrupt (Registermodell) INT 0 konfigurieren (Falling) INT 0 ermöglichen Interrupts ermöglichen

Beispiel Noch einmal: Toggeln

Beispiel Noch einmal: Toggeln

USART-Interrupt Receive Complete Interrupt Enable Wenn RXC auf 1 geht (Byte empfangen), dann wird

USART-Interrupt Receive Complete Interrupt Enable Wenn RXC auf 1 geht (Byte empfangen), dann wird ein RX-Interrupt ausgelöst. RXC wird nicht automatisch gelöscht!

USART-Interrupt (High-Level)

USART-Interrupt (High-Level)

Beispiel COM-Quittung

Beispiel COM-Quittung