Ich verstehe deine problem beschreibung nicht.
Was macht er mit das obene program. Und was macht er mit MotorFWD auskommentiert und MotorDir und MotorSpeed wieder eingestellt.
Auserdem söllte die nicht (in diesen fall) im inneren der While-schleife stehen. Variabelen sind nur gultig zwischen der gleich daneben stehenden {} klammern. In dein program wird sw jede schleife durchlauf wieder auf neu deklariert. Ich denke nicht das es die ursache ist deiner problem. Aber schön ist es nicht.
Die ganze if-statement kan man auch einkurzen wen er das selbe reagieren mus auf die taster:
Code:
if (sw & 0x3F) /* irgend einer taster? */
Back();
else MotorFWD();
Die tastertest mit PollSwitch ist aber empfindlich fur störung von den motoren. Ein einfache lösung ist mehrfach die PollSwitch abfragen, und nur darauf reagieren wan der wert stabiel ist.
Code:
sw = PollSwitch();
if (sw==PollSwitch()) && (sw & 0x3F) Back(); /* Auwa, meine nase tut wirklich weh! Doppelt gechecked. */
else MotorFWD();
...
Lesezeichen