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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren