Hallo Radbuch,
ich hab's heute endlich geschaft, dass der ASURO z.B. 4 Umdrehungen vorfährt!!! Hier das Programm:
Code:
/*Asuro fährt geradeaus und misst die Helligkeit der Readsensoren*/
#include <asuro.h>
#include <string.h>
int main(void)
{
unsigned int umdrehung=0;											//Ist wichtig zu zaehlen der Umdrehungen
unsigned int zaehler=0;											//Ist wichtig zu zaehlen der verschiedenen Felder
unsigned int zeit;													//Ist wichtig fuer die Pausen
unsigned int data[2],data_min[2],data_max[2],data_mit[2];
char AusgabeTxt[80], Text[80], Textaa[80];							//Ist wichtig für die SerWrite ausgaben
Init();
data_max[0] = 0;
data_max[1] = 0;
data_min[0] = 65000;
data_min[1] = 65000;

	MotorDir(FWD,FWD);												//Asuro fäht sehr langsam fuer genaue Messungen
	MotorSpeed(150,160);
	
	OdometrieData(data);											//Das aktuelle Feld wird erfasst
	if (data[0] < data_min[0])										//Hier werden die Daten vom OdometrieData  ausgewertet und der höchste
		{
		   data_min[0] = data[0];									//und niedrigste Wert beider Seiten wird gespeichert
		}
	if (data[1] < data_min[1])
		{
		   data_min[1] = data[1];
		}
	if (data[0] > data_max[0])
		{
		   data_max[0] = data[0];
		}
	if (data[1] > data_max[1])
		{
		   data_max[1] = data[1];
		}
	
	sprintf (AusgabeTxt, "Min 1: %d Min 2: %d Max 1: %d Max 2: %d  \n\r",
	data_min[0],data_min[1],data_max[0],data_max[1]);				//Die gespeicherten Werte werden hier über einen Striing ausgegeben
	SerWrite(AusgabeTxt,80);
	data_mit[0]=((data_max[0]-data_min[0])/2)+data_min[0];		//Hier wird der Mittelwert vom linkenm Rad berechnet
	sprintf (Text,"Mittelwert links: %d  \n\r",data_mit[0]);		//Dieser wird dann ausgegeben
	SerWrite(Text,80);
	data_mit[1]=((data_max[1]-data_min[1])/2)+data_min[1];		//Das ganze mit der anderen Seite
	sprintf (Textaa,"Mittelwert rechts: %d  \n\r",data_mit[1]);
	SerWrite(Textaa,80);											//Bishierhin wurde nur kaliebriert und erfasst
	while(1)														//Folgendes wird immer wiederholt und ist das eigendliche Programm
	{
	OdometrieData(data);											//Das aktuelle Feld wird erfasst
	if(data[1]>data_mit[1])										//und mit dem Mittelwert verglichen
		{															//wenn es dunkeler war wird das zu der Anzahl der dunkelen Felder addiert
		zaehler++;
		SerWrite("zeahler++\n\r",11);								//Dieses TOPEREIGNISS wird natürlich weitererzählt
		}
	if(zaehler>=6)													//Wenn 6 dunkle Felder erfasst wurden
		{
		umdrehung++;												//Haben sich die Räder einmal gedreht
		SerWrite("Umdrehung++\n\r",14);								//Auch dieses TOPEREIGNISS wird natürlich weitererzählt
		zaehler	= 0;												
		}
	if(umdrehung>=4)												//wenn sie sich denn 4 mal gedreht haben 
		{
		MotorSpeed(0,0);
		for(zeit=0;zeit<4000;zeit++)								//Vier Sekunden stillstand
			{
			Sleep(36);
			}
		umdrehung = 0;
		SerWrite ("Das waren 4 Umdrehungen!\n\r",26);
		}
	}
while(1)
return 0;
}
Und was sagst du dazu.
Natürlich will ich besteh ich nicht darauf, dass du was dazu schreibst. Programmieren und CO soll ja Spaß machen. Aber ich würde mich schon mal über ne kurze Stellungsnahme von dir freuen. Allerdings ist es jetzt kein MEGAerfolg. Aber dennoch ein Erfolg.

Gruß Roboaktiv