So, nach längerem hin und her überlegen sieht mein Programm jetzt so aus:
Code:
#include "asuro.h"
int zaehler;
char x=1;
int main(void)
{
Init();
MotorDir(FWD,FWD);
MotorSpeed(150,150);
StatusLED(GREEN);
while (PollSwitch()==0)
{
SerWrite("Vorwärts!\n",11);
}
StatusLED(RED);
BackLED(ON,ON);
while (x)
{
for(zaehler=0;zaehler<2;zaehler++)
{
SerWrite("Angeeckt, drehung um 90°\n",26);
MotorDir(RWD,RWD);
MotorSpeed(0,150);
}
x=0;
}
return(0);
}
Ich habe mir dabei gedacht das ich eine Zählerschleife setze welche anfängt zu zählen sobald ASURO irgendwo aneeckt, und wenn sie zB 2 erreicht, aus der for Bedingung raus springt und x=0 setzt. Was zur Folge hat das auch die Rückwärts fahren Schleife nicht mehr wahr ist und das ganze Programm von oben wieder neu abgearbeitet wird!
Warum funktioniert das beenden der Rückfahr Bedingung nicht?
Es klappt bis dahin das ASURO fährt, irgendwo aneeckt. Und dann dreht sich ASURO ewig Rückwärts im Kreis!
Lesezeichen