Hallo Wsk8,
der ungleich-operator war das Problem!
Es bedurfte nur noch einer kleinen änderung an den Turn() Methoden, da in switch bei einer abfrage auf != 0 ein case 0: natürlich unsinnig ist!
So funktioniert es:
mfg ChrissiCode:#include "asuro.h" //Metoden void TurnR (void); void TurnL (void); int main(void) { //Inizialisieren Init(); //Variablen unsigned char t1 = 0; unsigned char t2 = 0; unsigned char t3 = 0; // losfahren MotorDir(FWD, FWD); MotorSpeed(200, 200); //endlosschleife while(1) { //tastenabfrage t1 = PollSwitch(); Sleep(10); t2 = PollSwitch(); Sleep(10); t3 = PollSwitch(); //tastenauswertung if ((t1 != 0) && (t1 = t2 = t3)) switch (t1){ case 32: TurnR(); break; case 16: TurnR(); break; case 8: TurnR(); break; case 4: TurnL(); break; case 2: TurnL(); break; case 1: TurnL(); break; }; }; //wegen int: return(0); }; void TurnR (void) { //variablen int i=0; //stueck zurueck MotorDir(RWD,RWD); for (i=0;i<50;i++) {Sleep(255);} //drehen MotorDir(FWD, RWD); for (i=0;i<50;i++) {Sleep(255);} BackLED(OFF,ON); MotorDir(FWD,FWD); }; void TurnL (void) { //variablen int i=0; //stueck zurueck MotorDir(RWD,RWD); for (i=0;i<50;i++) {Sleep(255);} //drehen MotorDir(RWD, FWD); for (i=0;i<50;i++) {Sleep(255);} BackLED(ON,OFF); MotorDir(FWD,FWD); };







Zitieren

Lesezeichen