MSP430 interrupt

OP #1252909
Lesenswert?
• ▲
▼
Hallo

Hier im Forum fand ich in einem Thread ein Deklarationbeispiel für den 
Interrupt:
1
interrupt (PORT1_VECTOR) void irgendein_name(void)

In den Beispielen von TI sieht das aber immer so aus:
1
  IE1 |= OFIE;                              // Enable osc fault interrupt
2

3
#pragma bis_nmi_ie1=OFIE                    // Re-enable osc fault interrupt
4
#pragma vector=NMI_VECTOR
5
__interrupt void NMI_ISR(void){
6
//Anweisungen...
7
}

Was ist nun genau der Unterschied zwischen beiden Varianten und was hat 
dieses #pragma zu bedeuten?

Wisst ihr da Rat?

Danke
#1252967
Lesenswert?
• ▲
▼
1
interrupt (PORT1_VECTOR) void irgendein_name(void)
Ist die Deklaration einer Interrupt-Service Routine für den GCC.
1
#pragma vector=PORT1_VECTOR
2
__interrupt void irgendein_name(void)
Ist die gleiche Deklaration, aber für den IAR bzw. CCE Compiler.

Kann man auch gut mit Präprozessoranweisungen machen, damit der Code auf 
allen MSP430 Kompilers übersetzbar ist.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.