Hallo,
Ich hab mal ne Frage:
Könnte jemend von euch vllt dieses Programm für den Asuro testen?
Code:
#include "asuro.h"
int main(void) {
unsigned int data[2]; 
unsigned int ododata[2];
unsigned int odo;
int Strecke;
int Streckerueck;
int diff;
char Nummer;
int Zahl;
Init();
Strecke=0;
Streckerueck=0;
FrontLED(ON); 
 
MotorDir(FWD,FWD);
StatusLED(GREEN);
while(PollSwitch() < 2){
 LineData(data); 

if (data [0] > data [1] ) 
{MotorSpeed(200,150);} 
else
{MotorSpeed(150,200);} 
Strecke++;}
while(1){
StatusLED(RED);
MotorSpeed(0,0);
Nummer=0;
while (Nummer<5)
{Zahl=0;
while (Zahl<100)
{
Sleep(216);
Zahl++;
}
Zahl=0;
BackLED(ON,OFF);
while (Zahl<100)
{
Sleep(216);
Zahl++;
}
BackLED(OFF,ON);
Nummer++;}
Zahl=0;
MotorDir(RWD,RWD);
MotorSpeed(180,180);
BackLED(ON,ON);
while (Zahl<350)
{
Sleep(216);
Zahl++;
}
MotorDir(FWD,RWD);
MotorSpeed(120,120);
Zahl=0;
while (Zahl<35)
{
OdometrieData(ododata);
odo=ododata [0];
Sleep(255);
OdometrieData(ododata);
diff=odo-ododata [0];
if (diff>750)
{Zahl++;}
else{}
}
MotorDir(FWD,FWD);
while(Strecke-Streckerueck>100){
 LineData(data); 

if (data [0] > data [1] ) 
{MotorSpeed(200,150);} 
else
{MotorSpeed(150,200);} 
Streckerueck++;}
}

return 0;
}
Meiner ist nämlich kaputt und ich will nicht auf den neuen warten!
Außerdem brauch ich es für einen Vortrag.
Wenn ihr Fehler oder Umständlichkeiten im Code findet könnt ihr mir ja antworten.
Das Programm soll folgendermaßen laufen:
Asuro fährt einer Linie entlang, fährt dann gegen die Wand, dreht um und fährt wieder zurück der Linie entlang. Jetzt soll er aber lernen und nicht mehr gegen die Wand auf der anderen Seite fahren, sondern kurz vorher stoppen und umdrehen (habe ich mit 'nem Zähler beim Liniensensor gemacht und nich mit Odometrie)
Ich hoffe es funktioniert, bin aber echt nich sicher weil ich schon länger nicht mehr programmiert habe.
Vielen Dank,
Qwertix