Herunterladen Inhalt Inhalt Diese Seite drucken

Interrupt-Vektor - Texas Instruments MSP430 Anleitung

Vorschau ausblenden Andere Handbücher für MSP430:
Inhaltsverzeichnis

Werbung

FH-Köln Campus Gummersbach

8.- Interrupt-Vektor

Bei einem Interrupt Vektor handelt es sich um einen Zeiger auf eine Interrupt Service Routine
Es gibt eine Vielzahl an Ereignissen, die wiederum eine Vielzahl verschiedener Interrupt Service
Routinen aufrufen können, wobei jedem Ereignis eine bestimmte Interrupt Service Routine fest
zugeordnet ist. Wird z.B. die Interrupt Freigabe für einen Eingangs Pin von Port 1 parametriert, dann
wird bei einem Ereignis an diesem Pin (fallende oder steigende Flanke) ein bestimmtes Eventflag
gesetzt (P1IFG.x) Wenn ein solches Eventflag gesetzt wurde und entsprechende Interrupt Freigabe ist
aktiviert, dann wird automatisch die zugehörige Interrupt Service Routine, in diesem Fall die
Intrinsic Funktion "__interrupt void Port1(void){....}" aufgerufen. Dazu muss dem Controller die
Adresse dieser Funktion im zugehörigen Interrupt-Vektor bekanntgegeben werden. Dies macht man
bei
Hochsprachen,
"#pragma vector=PORT1_VECTOR". Diese Direktive schreibt man unmittelbar vor die Interrupt
Service Routine. Beim Übersetzen wird dann die Adresse der folgenden Funktion in den angegebenen
Vektor geschrieben.
Ein Interrupt-Vektor wird in der 16-Bit-Adresse der entsprechenden Interrupt-Service-Routine
programmiert. Es wird empfohlen, für jeden Interrupt-Vektor eine zugeordnete Interrupt-Service-
Routine bereitzustellen. Wird ein Interrupt für ein Ereignis freigegeben für das es keine Interrupt
Service Routine mit einem entsprechend aktualisierten Vektor gibt, dann führt der Controller einen
Neustart nach Auftreten des Ereignisses aus.
Freigabe-Modul, Interrupt-Freigabe und Interrupt-Flags sind in dem SFRs platziert.
Die SFRs (Spezial Funktionen Register) befinden sich im unteren Adressbereich und sind als Byte-
Format implementiert. Auf die SFRs wird unter Verwendung von Byte-Anweisungen zugegriffen.
Beispiel für eine Gerätespezifische Interrupt-Vektor-Liste:
Interrupt Quelle
Einschalten
Externes Reset
Watchdog Timer
Flash-Taste Fehler
Nonmaskable Interruptor
Oszillator-Fehler
Flash-Speicherzugriffeinheitsfehler
Comparator_A+
Watchdog Timer+
Timer0_A3
Timer0_A3
ADC 10
USI
(I/O) Port P2
(I/O) Port P1
Juni 2012
wie
C,
mittels
einer
Interrupt Flag
PORIFG
RSIFG
WDTIFG
KEYV
NMIIFG
OFIFG
ACCVIFG
CAIFG
WDTIFG
TACCR0 CCIFG
TARCCR0 TARCCR1 CCIFG. TAIFG
ADC10IFG
USIIFG USISTTIFG
P2IFG.0 BIS P2IFG.7
P1IFG.0 BIS P1IFG.7
Compiler
Direktive.
MSP430 Mikrocontroller
In
unserem
Beispiel
Interrupt
System
RESET
NICHT
MASKIERBAR
MASKIERBAR
14 |
S e i t e

Quicklinks ausblenden:

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis