Ich habe ein wirklich seltsames Problem:
Folgender Code
1 | PLED |= (1<<LED1 | 1<<LED2 | 1<<LED3 | 1<<LED4 | 1<<LED5 | 1<<LED6); //Zuerst alle LEDs aus
|
2 | switch(farbe[array_pos]){ //Dann entsprechende LED wieder einschalten
|
3 | case 1: PLED &= ~(1<<LED1); break;
|
4 | case 2: PLED &= ~(1<<LED2); break;
|
5 | case 3: PLED &= ~(1<<LED3); break;
|
6 | case 4: PLED &= ~(1<<LED4); break;
|
7 | case 5: PLED &= ~(1<<LED5); break;
|
8 | case 6: PLED &= ~(1<<LED6); break;
|
9 | }
|
funktioniert einwandfrei.
Kehre ich den Code nun um, so dass statt 1er 0er geschrieben werden und
umgekehrt, geht das ganze nicht mehr, soll heißen der Mega8 kommt ins
"Stolpern" (Macht undefinierbare Dinge).
Das hier geht nicht:
1 | PLED &= ~(1<<LED1 | 1<<LED2 | 1<<LED3 | 1<<LED4 | 1<<LED5 | 1<<LED6); //Zuerst alle LEDs aus
|
2 | switch(farbe[array_pos]){ //Dann entsprechende LED wieder einschalten
|
3 | case 1: PLED |= (1<<LED1); break;
|
4 | case 2: PLED |= (1<<LED2); break;
|
5 | case 3: PLED |= (1<<LED3); break;
|
6 | case 4: PLED |= (1<<LED4); break;
|
7 | case 5: PLED |= (1<<LED5); break;
|
8 | case 6: PLED |= (1<<LED6); break;
|
9 | }
|
Hat jemand eine Idee, warum das so ist?