Du kannst bei Switch/case Schleifen nicht prüfen, somit funktioniert auch ==, >, <,.... nicht.
Wenn du das ==high entfernst funktioniert die Abfrage richtig, jedoch wird dann auf den genauen Wert geprüft.
Deine Schleife verstehe ich auch nicht ganz.
Zur Switch Abfrage:
Es wird die Variable geprüft, die in der Klammer beim Switch steht. Mit Case wird genau auf einen Wert geprüft.
Als Beispiel:
Code:
switch (variable)
{
case 1:
break;
case 5:
break;
default:
}
Wenn in variable 1 steht, wird auch "case 1:", ist die variable 5, wird auch "case 5:" ausgeführt, ist aber die variable z.B. 2 wird nichts ausgeführt, außer du hast das "default:" drinnen, dann wird das ausgeführt.
Jetzt zu deinem Problem, du hast einmal die for Schleife, die wird zwar 5x durchlaufen, da passiert aber nichts. Danach prüfst du die Variable "Sensor[5]" (weil durch die for Schleife die Variable "i" 5 ist). Sensor[5] ist weiter oben mit "H_Rechts" definiert und somit mit der Zahl 19. Wenn du jetzt bei den Case Abfragen das ==High entfernst (sonst geht es nicht) wird immer "case H_Rechts" (weil das dem Wert in "Sensor[5]" steht) ausgeführt.
Edit: Ich habe einen Fehler eingebaut. Es wird nicht "Sensor[4]" geprüft sondern "Sensor[5]", weil die for Schleife noch einmal erhöht wird, aber die Schleife nicht mehr ausgeführt (weil die Bedingung "i<5" nicht mehr stimmt). Habe es ausgebessert.
MfG Hannes
Lesezeichen