Hier ist meiner (bearbeiteten) code:
Code:
#include "asuro.h"
int main()
{
Init();
int i;
char t1,t2,tasterzustand;
while(1)
{
t1=PollSwitch();
t2=PollSwitch(); /* zwei mal tasterwert messen fur stabiele wert */
if (t1==t2) /* sind die taster eindrucken stabiel? */
{
tasterzustand=t1; /* ja ist es, tasterzustand ist erste messung */
}
else
{
tasterzustand=0; /* nee, ist es nicht, tasterzustand ist 'kein taster' */
}
if (tasterzustand==0) /* Keine Kollision: 00000000 im binaire zahlung */
{
StatusLED(GREEN);
MotorDir(FWD,FWD);
MotorSpeed(155,155);
BackLED(OFF,OFF); /* Ich gehe voraus, vieleicht sind die LEDs schon aus, aber tu es sonnst */
for (i=0; i<50;i++)
{
Sleep (72);
}
}
else if (tasterzustand==1) /* Taster rechts-außen wird gedrückt: 00000001 im binaire zahlung */
{
StatusLED(RED);
MotorDir(RWD,RWD); /* Rückwärtskurve rechts*/
MotorSpeed(100,20);
BackLED(ON, OFF); /* Meiner linken Rad dreht (schneller) rückwärts */
for (i=0; i<1000;i++) /*1sekunde rückwärts fahren (1000mls) */
{
Sleep(72);
}
MotorDir(FWD,FWD); /* Vorwärtskurve links*/
MotorSpeed(20,100);
BackLED(OFF, OFF); /* Gehe wieder vorwärts */
for (i=0; i<500;i++)
{
Sleep(72);
}
}
else if (tasterzustand=32) /* Taster Links-außen wird gedrückt: 00100000 im binaire zahlung */
/* '>31' is xx1xxxxx im binaire zahlung, und nicht nur die ganz linker taster*/
{
StatusLED(YELLOW);
MotorDir(RWD,RWD); /* Rückwärtskurve links */
MotorSpeed(20,100);
BackLED(OFF, ON); /* Meiner Rechter Rad dreht (schneller) rückwärts */
for (i=0; i<1000;i++)
{
Sleep(72);
}
MotorDir(FWD,FWD); /* Vorwärtskurve rechts */
MotorSpeed(100,20);
BackLED(OFF, OFF); /* Ich gehe wieder vorwärts*/
for (i=0; i<500;i++)
{
Sleep(72);
}
}
else /* Andere Taster werden gedrückt: 00xxxxxx im binaire zahlung */
{
MotorDir(RWD,RWD); /* Rückwärts fahren */
MotorSpeed(100,100);
BackLED(ON,ON); /* Beider Rädern drehen zurück */
for (i=0; i<1000;i++)
{
Sleep(72);
}
MotorDir(RWD,FWD); /* Drehung gegen UZS */
MotorSpeed(100,100);
BackLED(OFF,OFF); /* Ich fahre nicht mehr zurück */
for (i=0; i<500;i++)
{
Sleep(72);
}
}
}
return 0;
}
Edit von radbruch: if (t1==t2)
Lesezeichen