Code mit Invertierten Werten für die Ports geht nicht.

OP #1109717
Lesenswert?

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?
Gast #1109727
Lesenswert?

Sicher das deine Mosfet richtig angeschlossen sind? Da du den Code 
geändert hast denke ich mal das auch die Beschaltung sich geändert hat. 
Schaltplan wäre hilfreich. Ansonsten, miss doch einfach mal direkt an 
den Pins ob da rauskommt was du willst.
OP #1109733
Lesenswert?

Nein, nein, das ist ja das Problem, an der Beschaltung hat sich 
überhaupt nichts geändert.
Zum Anhang:
Die Transistoren sind vom Typ IRLU 2905. R_Pullup kann auch weggelassen 
werden, ändert sich nichts...
Der unterste Transistor wird mit PWM angesteuert. So kann man die LEDs 
dimmen.

Es war nur so, dass ich den Code auf einem STK500 mit Low-aktiven LEDs 
gecodet habe aber jetzt eben mit den MOSFETs High-aktive ausgänge habe. 
Und auf dem STK500 lief das Programm auch einwandfrei.
Angehängte Dateien:

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