MSP430 - #define GREEN_LED BIT6 - funktioniert nicht richtig

OP #3503966
Lesenswert?

Hier ist mein Code.
Wie ihr seht funktioniert es mal und mal nicht...

#include <msp430g2553.h>


#define RED_LED BIT0;
#define GREEN_LED BIT6;

double i = 0;

void wait(double j){
    for (i = 0; i < j; ++i) {
    }
}

void main(void)
{
    WDTCTL = WDTPW + WDTHOLD;
    P1DIR |= BIT0 + BIT6; <-- Hier funktioniert GREEN_LED oder RED_LED 
nicht (P1DIR |= GREEN_LED + RED_LED)

    while(1)
    {
        P1OUT ^= GREEN_LED; <-- hier funktioniert es
        wait(1000);
        P1OUT ^= RED_LED; <-- hier funktioniert es
    }
}

Danke für eure Hilfe.
Angehängte Dateien:
Persönliche Seite #3503981
Lesenswert?

Ganz genau hingucken:
1
#define RED_LED BIT0;
2
#define GREEN_LED BIT6;
3

4
...
5

6
    P1DIR |= GREEN_LED + RED_LED;
7

8
....
9

10
    P1OUT ^= GREEN_LED;

Was geschieht beim Textersatz eines #defines?

Der komplette Text wird ersetzt.

In Deinem Code passiert das hier :
1
#define RED_LED BIT0;
2
#define GREEN_LED BIT6;
3

4
...
5

6
    P1DIR |= BIT6; + BIT0; ;
7

8
....
9

10
    P1OUT ^= BIT6; ;

Na? Fällt Dir was auf?

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