Hallo,
habe ein kleines Problem.
Und zwar:
Mein Asuro soll einer Linie folgen und bei Kollision soll er ein Stück zurücksetzen und sich dann um 180° drehen.
Nun macht er aber folgendes:
Der Asuro folgt der Linie (soweit OK!), bei Kollision setzt er ein Stück zurück (auch OK!) und dann dreht er sich, und dreht, und dreht, und dreht...
Und hört gar nicht mehr auf sich zu drehen...
Kann mir vielleicht jemand bei dem Problem helfen?
Hier noch mein derzeitiges Programm:
Code:
#include "asuro.h"
int main(void) {
unsigned int data[2];
unsigned int zaehler;
unsigned int p1;
unsigned int p2;
unsigned int p3;
unsigned int p4;
unsigned int p5;
unsigned int p6;
unsigned int p7;
unsigned int p8;
unsigned int p9;
Init();
FrontLED(ON);
MotorDir(FWD,FWD);
while(1){
LineData(data);
if (data [0] > data [1] )
{MotorSpeed(200,150); BackLED(ON,OFF); StatusLED(GREEN);}
else
{MotorSpeed(150,200); BackLED(OFF,ON); StatusLED(RED);}
p1=PollSwitch();
p2=PollSwitch();
p3=PollSwitch();
p4=PollSwitch();
p5=PollSwitch();
p6=PollSwitch();
p7=PollSwitch();
p8=PollSwitch();
p9=PollSwitch();
if(p9 != 0)
{
zaehler=0;
while(zaehler<65000)
{
zaehler++;
MotorDir(RWD,RWD);
MotorSpeed(150,150);
}
zaehler=0;
while(zaehler<10000)
{
zaehler++;
MotorDir(FWD,RWD);
MotorSpeed(150,150);
}
}
}
return 0;
}
Gruß
InfoPC
Lesezeichen