12
Interrupts Wozu Interrupts? Interruptmodell Einige Attiny-Interrupts INT0-Interrupt im Registermodell INT0-Interrupt mit High-Level- Befehlen USART-Interrupt V 1.0 - Copyright 2009 by G. Heinrichs

Interrupts Wozu Interrupts? Interruptmodell Einige Attiny-Interrupts INT0-Interrupt im Registermodell INT0-Interrupt mit High-Level-Befehlen USART-Interrupt

Embed Size (px)

Citation preview

Page 1: Interrupts Wozu Interrupts? Interruptmodell Einige Attiny-Interrupts INT0-Interrupt im Registermodell INT0-Interrupt mit High-Level-Befehlen USART-Interrupt

Interrupts

Wozu Interrupts? Interruptmodell Einige Attiny-Interrupts INT0-Interrupt im Registermodell INT0-Interrupt mit High-Level-Befehlen USART-Interrupt

V 1.0 - Copyright 2009 by G. Heinrichs

Page 2: Interrupts Wozu Interrupts? Interruptmodell Einige Attiny-Interrupts INT0-Interrupt im Registermodell INT0-Interrupt mit High-Level-Befehlen USART-Interrupt

Wozu Interrupts (I)

Beispiel: Blinkzeit über Taster T0 einstellen

Ohne Interrupts muss T0 durch entsprechende Befehle im Programm permanent überprüft werden.

Gefahr: T0-Signal wird „übersehen“, weil Mikrocontroller gerade mit anderen Befehlen beschäftig ist.

Unbequem: Evtl. viele T0-Überprüfungen im Programm erforderlich

Page 3: Interrupts Wozu Interrupts? Interruptmodell Einige Attiny-Interrupts INT0-Interrupt im Registermodell INT0-Interrupt mit High-Level-Befehlen USART-Interrupt

Wozu Interrupts (II)

Beispiel: Blinkzeit über Taster T0 einstellen

Mit Interrupts löst die Attiny-Hardware einen Sprung zu einem bestimmten Programmteil aus, wenn T0 betätigt wird. Der „normale“ Programmablauf wird dazu unterbrochen.

Keine Gefahr, dass T0-Signal „übersehen“ wird

Bequem: Keine Befehle zur T0-Überprüfungen im normalen Programmablauf

Page 4: Interrupts Wozu Interrupts? Interruptmodell Einige Attiny-Interrupts INT0-Interrupt im Registermodell INT0-Interrupt mit High-Level-Befehlen USART-Interrupt

InterruptmodellHauptprogramm läuft und läuft...Durch T0 wird INT0 ausgelöst

Hauptprogramm wird unterbrochen

Sprung zur Marke „Schneller:“ undXxx ausführenRückkehr zum Hauptprogramm

Wenn der Attiny zur Interrupt-Routine springt, wird er für alle weiteren Interrupts gesperrt. Diese Sperrung wird erst aufgehoben, wenn der Attiny zum Hauptprogramm zurückkehrt.

Page 5: Interrupts Wozu Interrupts? Interruptmodell Einige Attiny-Interrupts INT0-Interrupt im Registermodell INT0-Interrupt mit High-Level-Befehlen USART-Interrupt

Attiny-InterruptsSignal anPortD.2,z. B. mit Taster T0

Page 6: Interrupts Wozu Interrupts? Interruptmodell Einige Attiny-Interrupts INT0-Interrupt im Registermodell INT0-Interrupt mit High-Level-Befehlen USART-Interrupt

INT0-Interrupt (High-Level)

INT0 ermöglichen

INT0 konfigurieren

Interrupts global ermöglichen

INT0 eine Routine durch Marke zuordnenINT0-Routine durch Return abschließen

Low LevelFallingRisingChanging

Page 7: Interrupts Wozu Interrupts? Interruptmodell Einige Attiny-Interrupts INT0-Interrupt im Registermodell INT0-Interrupt mit High-Level-Befehlen USART-Interrupt

Beispiel

1. Toggeln2. Blinkzeit

Page 8: Interrupts Wozu Interrupts? Interruptmodell Einige Attiny-Interrupts INT0-Interrupt im Registermodell INT0-Interrupt mit High-Level-Befehlen USART-Interrupt

INT0-Interrupt (Registermodell)

INT0 konfigurieren (Falling)

INT0 ermöglichen

Interrupts ermöglichen

Page 9: Interrupts Wozu Interrupts? Interruptmodell Einige Attiny-Interrupts INT0-Interrupt im Registermodell INT0-Interrupt mit High-Level-Befehlen USART-Interrupt

Beispiel

Noch einmal: Toggeln

Page 10: Interrupts Wozu Interrupts? Interruptmodell Einige Attiny-Interrupts INT0-Interrupt im Registermodell INT0-Interrupt mit High-Level-Befehlen USART-Interrupt

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!

Page 11: Interrupts Wozu Interrupts? Interruptmodell Einige Attiny-Interrupts INT0-Interrupt im Registermodell INT0-Interrupt mit High-Level-Befehlen USART-Interrupt

USART-Interrupt (High-Level)

Page 12: Interrupts Wozu Interrupts? Interruptmodell Einige Attiny-Interrupts INT0-Interrupt im Registermodell INT0-Interrupt mit High-Level-Befehlen USART-Interrupt

Beispiel

COM-Quittung