So, jetzt! Verbesserungsvorschläge usw. Wozu brauche ich auch eigentlich c[0] und c[1] in den abfragen?Code:#include "asuro.h" int main(void) { Init(); StatusLED(YELLOW); char c[3]={0, 0, 0}; while(1) { SerRead(c,3,20); while( (c[1]||c[0]) != 'v'){ if(c[1]=='V'||c[0]=='V') //Vorwaerts fahren { StatusLED(YELLOW); MotorSpeed(150,150); MotorDir(FWD,FWD); if(c[1]=='L'||c[0]=='L') //langsam { StatusLED(YELLOW); MotorSpeed(100,100); } if(c[1]=='S'||c[0]=='S') //schnell { StatusLED(YELLOW); MotorSpeed(250,250); } if(c[1]=='B'||c[0]=='B') //break { MotorSpeed(BREAK, BREAK); StatusLED(GREEN); } if(c[1]=='A'||c[0]=='A') //motor aus, ausrollen { MotorSpeed(0,0); StatusLED(GREEN); } if((c[1]||c[0])!= ('A'||'B'||'S'||'L'||'R')){SerWrite("*\r\n",3);} //blabla } } while( (c[1]||c[0]) != 'r'){ if(c[1]=='R'||c[0]=='R') //Rueckwaerts fahren { StatusLED(YELLOW); MotorSpeed(150,150); MotorDir(RWD,RWD); if(c[1]=='L'||c[0]=='L') //langsam { StatusLED(YELLOW); MotorSpeed(100,100); } if(c[1]=='S'||c[0]=='S') //schnell { StatusLED(YELLOW); MotorSpeed(250,250); } if(c[1]=='B'||c[0]=='B') //break { MotorSpeed(BREAK, BREAK); StatusLED(GREEN); } if(c[1]=='A'||c[0]=='A') //motor aus, ausrollen { MotorSpeed(0,0); StatusLED(GREEN); } if((c[1]||c[0])!= ('A'||'B'||'S'||'L'||'V')){SerWrite("*\r\n",3);} //blabla } } c[0]=0;c[1]=0;c[2]=0; Msleep(100); } return(0); }
Es gibt da auch eine (unbedeutende? da gelbe farbe im AVRstudio) fehlermeldung
tastat.c:11: warning: pointer targets in passing argument 1 of 'SerRead' differ in signedness







Zitieren

Lesezeichen