Forum: Compiler & IDEs switch Problem


von Matthias L. (mcl024)


Lesenswert?

Hallo,

warum funktioniert der folgende Code nicht. Also mit nicht funktionieren 
meine ich, das in keine case-Anweisung gesprungen wird.

char byte_1;

...

switch(byte_1)
{
case 0x10:LED = 1;
break;

case 0x20:LED = 1;
break;

default: LED = 1;
}

Die LED geht nie an. Warum?

von Flo (Gast)


Lesenswert?

Ich vermute, die LED ist kaputt xD

Zeig mal den kompletten Code, der Ausschnitt bringt nicht viel.

von Klaus W. (mfgkw)


Lesenswert?

oder falschrum reingesetzt,
oder nicht gegen Masse sondern +5V gelegt,
...

von Peter (Gast)


Lesenswert?

vielleicht optimiert der compiler es ja zu

 LED = 1;


damit gibt es kein switch mehr.

von Matthias L. (mcl024)


Lesenswert?

NE die LED funktioniert bestens mit LED = 0; und LED = 1;
Das ist nicht das Problem. Ich dachte das ich evtl. nen Fehler in der 
switch-Anweisung habe, evtl mit char und 0x10 oder so.

von Klaus W. (mfgkw)


Lesenswert?

Dann wird vielleicht das switch gar nicht erreicht, oder die LED gleich 
danach zu 0 gesetzt.

Die paar Zeilen oben jedenfalls sehen nicht verdächtig aus und
machen dasselbe wie LED=1.

von Klaus (Gast)


Lesenswert?

Na der Fehler is doch offensichtlich! Schau dir mal Zeile 42 genauer an.

von Magnetus (Gast)


Lesenswert?

Matthias Laubnitz schrieb:
> switch(byte_1)
> {
> case 0x10:LED = 1;
> break;
> case 0x20:LED = 1;
> break;
> default: LED = 1;
> }
>
> Die LED geht nie an. Warum?

Unabhängig davon, welchen Wert "byte_1" hat, wird mit deinem Code der 
Variable "LED" immer der Wert "1" zugewiesen.

Gruß,
Magnetus

von Matthias L. (mcl024)


Lesenswert?

Ok lassen wir das an dieser Stelle. Ich poste morgen mal den gesamten 
Code. Sorry aber ich habe ihn heute nicht da.
Vielen Dank für die ersten Tips

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.