mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP430 - Interrupt einstellen


Autor: Daniel Göbel (Firma: Lust) (daniel_goebel)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörg S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Was bedeuten diese Zeilen ?
#pragma vector=TIMERA0_VECTOR     ??
__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 ;-)

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim Hersteller? Wo denn sonst?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.