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.
Gast
#3503976
wait nach red?
Ganz genau hingucken:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Was geschieht beim Textersatz eines #defines? Der komplette Text wird ersetzt. In Deinem Code passiert das hier :
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Na? Fällt Dir was auf?
Sorry habe vergessen zu sagen, dass eine Warnmeldung kommt "expression has no effect" Diese Meldung kommt wenn ich BIT0 und BIT6 benutze nicht (dann blinken auch beide abwechselnd). Nur bei den Variablen GREEN_LED und RED_LED.
Tristan S. schrieb: > Sorry habe vergessen zu sagen, dass eine Warnmeldung kommt > "expression has no effect" Eben. Lies mal, was ich gerade geschrieben habe. Genau hinsehen!
Vielen Dank ^^ Das ging ja echt schnell. Bin etwas Java verseucht (alles mit ; abschließen) und habe es total übersehen. Das ist die Lösung!!!
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.