Hi,
mein Asuro soll heut lernen wie er Geradeaus fährt. Dafür hab ich erstmal gestestet, wie schnell welches Rad sein muss.(Durch unterschiedliche Reibung)

So jetzt hab ich ein kleines Programm geschrieben:
Code:
#include "asuro.h"

int main(void)
{

	int l=0;
	int r=0;
	int sleft=0;
	int sright=0;
	unsigned int data[2];
	Init();
	
	MotorDir(FWD,FWD);
	MotorSpeed(150,165);
	OdometrieData(data);
	while(1)
	{
	if (sleft!=1 && data[0]<700 && l<10)
	{
		sleft=1;
		l++;
	}
	if (sleft==1 && data[0]>700 && l<10)
	{
		sleft=2;
		l++;
	}
	if (sright!=1 && data[1]<700 && r<10)
	{
		sright=1;
		r++;
	}
	if (sright==1 && data[1]>700 && r<10)
	{
		sright=2;
		r++;
	}
	else if (r>l)
	{
	MotorSpeed(190,165);
	r=0;
	l=0;
	}
	else if (r<l)
	{
	MotorSpeed(150,190);
	r=0;
	l=0;
	}
	}
	return 0;
}
Das Programm soll so funktionieren:
Immer wenn ein hell/dunkelwechsel ist, zählt das Programm mit. Wenn auf einer Seite 10 Hell/Dunkelübergänge gezählt wurden, soll Asuro nachschauen auf welcher Seite mehr Übergänge da waren--> auf der anderen Seite soll er mehr Gas geben.
Irgendwie hab ich das falsch programmiert, kann mir wer da Tips zur Verbesserung geben?

Mfg Moebius