Anfängerfehler IAR + MSP430F449

Gast #1966344
Lesenswert?
• ▲
▼
Hallo,

momentan versuche ich LED-Lichter zu programmieren. Allerdings gibt IAR 
mir den Fehler, dass in der Funktion P1_ISR in der Zeile
1
if ((P1IFG & FREIGABE) > 0)

eine Klammer ")" fehlt. In einem anderen Programm funktioniert diese 
Abfrage einwandfrei. Ich weiß nicht, welche Informationen ihr noch 
braucht (totaler Anfänger mit µC-Programmierung), aber hier mal der 
Code:
1
#include  <msp430x44x.h>
2

3
#define FREIGABE  0x01;
4
#define TASTER    0x02;
5

6
void xTASTER(void);
7

8
unsigned int AV = 0;
9
//unsigned char i = 0;
10

11
void main(void)
12
{
13
  WDTCTL = WDTPW + WDTHOLD; //WDT aus
14
  P1DIR = 0x00; //init
15
  P1SEL = 0x00; //komplett als I/O
16
  P1OUT = 0x00; //alle P1_OUT-Bits = 0
17
  P1IE |= FREIGABE; //Taster Freigabe für Interrupt aktivieren
18
  P6DIR = 0xFF; //komplett als Ausgang
19
  P1OUT = 0x00; //init
20
  
21
  _EINT(); //GIE setzen
22
  
23
  while(1) //warte bis sich was tut
24
  {
25
    _NOP();
26
  }
27
  
28
}
29

30
void xTASTER(void)
31
{
32
  AV = P6OUT;
33
  if((AV & 0x01) > 0)
34
  {
35
    AV >>= 1;
36
    AV &= ~(0x01);
37
  }
38
  else
39
  {
40
    AV = 1;
41
  }
42
  
43
  P6OUT = AV;
44
}
45

46
#pragma vector=PORT1_VECTOR
47
__interrupt void P1_ISR()
48
{
49
  if ((P1IFG & FREIGABE) > 0)
50
  {
51
    P1IE |= TASTER;
52
    P6OUT = 1;
53
    P1IFG &= ~FREIGABE;
54
  }
55
  else
56
  {
57
    xTASTER();
58
    P1IFG &= ~TASTER;
59
  }
60
}

PS: Ich denke, der Code ist so einfach, dass er nicht vieler Kommentare 
bedarf.

Vielen Dank,
Daniel
Gast #1966409
Lesenswert?
• ▲
▼
Gleich noch eine Frage hinterher.
Wenn ich jetzt die Simulation anwerfe und das Bit 0 vom Port 1 setze, 
sollte er ja aus unserer tollen Schleife
1
 while(1) //warte bis sich was tut
2
  {
3
    _NOP();
4
  }

in das P1_ISR springen, oder nicht? Tuts leider nicht.
Gast #1966432
Lesenswert?
• ▲
▼
Nächste Frage... Der Interrupt vom zweite Bit (Bit1) des ersten Ports 
wird eigentlich erst aktiviert, wenn das erste Bit (Bit0) gesetzt wurde. 
Wenn ich aber ins Register schaue, wird es trotzdem im IFG gesetzt. :-( 
Also bevor ich Bit0 überhaupt berührt habe.

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.