• Keine Ergebnisse gefunden

Julien Stumpf Interrupts

N/A
N/A
Protected

Academic year: 2022

Aktie "Julien Stumpf Interrupts"

Copied!
13
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Interrupts

Julien Stumpf

(2)

Gliederung

1. Was sind Interrupts?

2. Wie funktioniert das?

3. Wozu Interrupts?

4. Tipps

5. Interrupts beim Atmega32

6. Fragen

7. Quellen

(3)

Was sind Interrupts?

Von engl. „to interrupt“  unterbrechen

Unterbrechen Programmablauf

Führen zeitkritische Operation aus

Lassen Programm weiterlaufen

(4)

Wie funktioniert das?

Ereignis

Interrupt Service Routine (ISR)

IRQ

(IRQ = Interrupt Request) Programmablauf:

#1012

#1013

#1014

#1015

#1016

#1017

….

(5)

Wozu Interrupts?

Beispiele für Auslösungen:

Änderung des Eingangspegels an PIN

Timer abgelaufen

Messung am AD-Wandler abgeschlossen

Serielle Übertragung abgeschlossen

(6)

Tipps

Interruptroutine kurz halten

Andernfalls können Interrupts „verschluckt“ werden

Keine Schleifen, Berechnungen, Ausgaben…

Steuervariablen/Flags verwenden (Stichwort: volatile)

(7)

Atmega32

(8)

Atmega32

Interrupts werden nur ausgeführt wenn:

„#include <avr/interrupt.h>“

Interrupts global aktiviert wurden „sei();“

Bestimmtes Maskenbit gesetzt wurde

Der Interrupt auftritt

(9)

Atmega32

Datenblatt Seite 44

(10)

Atmega32

#include <avr/io.h>

#include <avr/interrupt.h> //Stellt Interrupt-Funktionen bereit

#include <avr/iom32.h> //Erleichtert Benennung der Interrupts //...

volatile int Interrupt_erkannt;

//...

ISR(INT2_vect) //Interrupt für INT2 ("_vect" ranhengen) {

cli(); //deaktiviert Interrupts Interrupt_erkannt = 1;

} //...

int main(void) {

Interrupt_erkannt = 0;

GICR |= (1<<INT2); //Aktiviert INT2 als Interrupt PIN MCUCSR |= (1<<ISC2); //Interrupt INT2 bei steigender Flanke sei(); //Interrupts global aktivieren

while(1) {

//TODO...

if(Interrupt_erkannt = 1) {

//Interrupt hat funktioniert //DOOTHERSTUFF

} //...

} }

(11)

Fragen?

(12)

Quellen

Datenblatt des Atmega32

mikrocontroller.net

rn-wissen.de

Wikipedia.de

(13)

Ende

Referenzen

ÄHNLICHE DOKUMENTE

Auch wenn der eigentliche Anlass im Personalakt Schenks nicht ersichtlich ist – der deutsch-amerikanische Musikwissenschaftler Leo Schrade 1903–1964 hatte angeregt, ein Komitee im

Software would like to have an interrupt for each distinct operation; but to multiplex all the seek complete interrupts, and the controller complete interrupt, onto a single

Teil 2: Erstellen Sie ein C-Programm, das obige Tabellen mittels einer while-Schleife ausgibt.. Teil 3: Erstellen Sie ein C-Programm, das obige Tabellen mittels einer

INTERRUPT TRANSFERS — In addition to transferring data between nodes, the VMIVME-5576 will allow any processor in any node to generate an interrupt on any other node..

-Auftreten externer Ereignisse wird überwacht und der gewünschte Programmcode kann durch Interrupts sofort ausgeführt werden falls gewünscht. -spart der CPU Arbeit , braucht

● Dafür werden andere, kürzere verarbeitet, wenn ein Interrupt ausgelöst wird.. ● Benötigen ein

• Eine Messung eines AD-Wandlers Abgeschlossen ist.. Registrierung

Beachte: Jedes Interrupt braucht ein Programm, der globale Schalter muss betätigt sein und sie müssen über Funktionsbausteine geschaltet