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