Forum: Mikrocontroller und Digitale Elektronik MSP430 - Interrupt einstellen


von Daniel G. (Firma: Lust) (daniel_goebel)


Lesenswert?

Hallo Experten,

kann mir einer von euch eine schnelle Einweisung geben, wie man einen 
Interrupt für einen Timer initialisiert ?

// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR     ??
__interrupt void Timer_A (void)   ??

Was bedeuten diese Zeilen ?
Interrupt-Vektor-Tabelle erstreckt sich doch von 0xffe0 bis 0xfffe.
Wie lege ich dort den Interrupt für TimerA fest?

Mfg
Daniel

von Jörg S. (Gast)


Lesenswert?

Damit der Interrupt angesprungen wird, musst du die globalen interrupts 
aktivieren (GIE) und natürlich deinem Timer auch sagen das er Interrupts 
benutzen soll (TAIE).
Am besten schaust du dir die Beispiele von TI an.

von Stefan (Gast)


Lesenswert?

>Was bedeuten diese Zeilen ?
1
#pragma vector=TIMERA0_VECTOR     ??
2
__interrupt void Timer_A (void)   ??

TIMERA0_VECTOR ist eine Defintion des IAR-Compilers und enthält eben 
genau die Vektoradresse des Timer-A0 IRQ's
Durch die #pragma-Anweisung wird die darauffolgende Zeile:
__interrupt void Timer_A (void)
mit genau diesem IRQ-Vektor "verbunden" und die darin enthaltenen 
Codezeilen, beim Auftreten des entsprechenden Interrupts ausgeführt

>Wie lege ich dort den Interrupt für TimerA fest?
Mit dem von Dir aufgeführten Code Bsp ;-)

von Christian R. (supachris)


Lesenswert?

Das da oben sind nur Kompiler-Anweisungen, die den Kompiler veranlassen, 
die Interrupt-Vektoren so einzustellen, dass deine ISR angesprungen 
wird.

Den Interrupt freigeben musst du extra noch, wie Jörg schon schrieb.

Immer zuerst die Beispiel-Codes anschauen, es gibt eigentlich für jedes 
Peripheriemodul ein oder mehrere Beispiele.

von Christian R. (supachris)


Lesenswert?

Beim Hersteller? Wo denn sonst?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.