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);
}
So, jetzt! Verbesserungsvorschläge usw. Wozu brauche ich auch eigentlich c[0] und c[1] in den abfragen?
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
Lesezeichen