@ikarus_177
Ich glaube da wird nicht das getan, was Du haben möchtest. In C ist das so, dass bei einem passenden case-Vergleich der komplette Code bis zum Ende des Blockes ausgeführt wird. D.h. wenn iCounter 2 ist, dann wird nicht nur SERVOPORT |= (1 << SERVO2); sondern auch SERVOPORT |= (1 << SERVO2); und SERVOPORT |= (1 << SERVO3); sowie dServo = 1; ausgeführt. Um das zu verhindern muss man am Ende jedes Abschnitts ein break; setzen, dadurch wird der switch-Block verlassen.Code:... switch (iCounter) { case 1: SERVOPORT |= (1 << SERVO1); case 2: SERVOPORT |= (1 << SERVO2); case 3: SERVOPORT |= (1 << SERVO3); case 4: dServo = 1; } ...
MfG MarkCode:... switch (iCounter) { case 1: SERVOPORT |= (1 << SERVO1); break; case 2: SERVOPORT |= (1 << SERVO2); break; case 3: SERVOPORT |= (1 << SERVO3); break; case 4: dServo = 1; break; } ...







Zitieren

Lesezeichen