Hallo wölkchen,
schau mal genau auf die Warnings, wenn Du Dein Programm compilierst.
Da sollte irgendwas in der Art vonvorkommen.Code:main.c:25: warning: initialization makes integer from pointer without a cast
Du weist nämlich an t1 und t2 die Adresse der Funktion PollSwitch() zu und nicht den Rückgabewert der Funktion.
In C/C++ sind die Klammern eines parameterlosen Funktionsaufrufes nicht optional. Ich glaube bei Basic geht sowas.
In C bekommst Du in diesem Fall einen Zeiger auf die Funktion, also ihre Adresse. Und die ist definitiv nicht 0 und wird auch über die gesamte Programmlaufzeit immer den gleichen Wert haben.
Es müsste also heissen:
Dann liefert Dir PollSwitch() auch wie gewünscht eine 0, wenn keine Taste gedrückt ist.Code:... BackLED(OFF,OFF); // t1=PollSwitch; <-- das sind Zeiger auf die Funktion // t2=PollSwitch; <-- ändern in die folgenden Zeilen t1 = PollSwitch(); t2 = PollSwitch(); } MotorStop(); ...







Zitieren

Lesezeichen