Hey damaltor,

Schau dir das doch mal an ob das so ungefähr C entspricht.
Hab das heute nachmittag mal versucht zu schreiben.
Das ist jetzt meiner Meinung nach NUR die Kantenverfolgung, mit 2 Unterscheidungen, je nach dem wo grade schwarz und weiß ist.
Mit den Schleifen bin ich mir nicht ganz sicher...und auch nicht wo ich die while(1) Schleife setzen muss. Wie ist das mit den if-Anweisungen? Die verlangen doch eigentlich eine reine else-Anweisung? Ich hab da jetzt ne if else Anweisung gemacht, da ich das in irgendeinem Programm in der Asuro Lib gesehen habe.

Code:
#include "asuro.h"

#define SPEED 0x9F

int main(void)
{
 unsigned int data[2]; //data[0]->rechts, data[1]->links
 
 Init();
 FrontLED(On);
 MotorDir(FWD,FWD);
 MotorSpeed(SPEED,SPEED);
 
 while(1)
 {
  LineData(data);	//Liniensensoren
  if ( data[0]>550 && data[1]<450 )		//RECHTS weiß, LINKS schwarz -> gerade weiterfahren
   {
    MotorDir(FWD,FWD);
	MotorSpeed(SPEED,SPEED);
   }
  else if ( data[0]>600 && data[1]>600)		//RECHTS weiß, LINKS weiß -> weiter LINKS fahren
   {
    MotorDir(FWD,FWD);
	SPEED=SPEED+10;
	MotorSpeed(150,SPEED);
   }
  else if ( data[0]<400 && data[1]<400 )	 //RECHTS schwarz, LINKS schwarz -> weiter RECHTS fahren
   {
    MotorDir(FWD,FWD);
	SPEED=SPEED-10;
	MotorSpeed(150,SPEED);
   }
  
  LineData(data);
  if ( data[0]<450 && data[1]>550 )		//RECHTS schwarz, LINKS schwarz -> gerade weiterfahren
   {
    MotorDir(FWD,FWD);
	MotorSpeed(Speed,Speed);
   }
  else if (data[0]>600 && data[1]>600)		//RECHTS weiß, LINKS weiß -> weiter RECHTS fahren
   {
    MotorDir(FWD,FWD);
	SPEED=SPEED-10;
	MotorSpeed(150,SPEED);
   }
  else if (data[0]<400 && data[1]<400 )		 //RECHTS schwarz, LINKS schwarz -> weiter LINKS fahren
   {
    MotorDir(FWD,FWD);
	SPEED=SPEED+10;
	MotorSpeed(150,SPEED);
   }
 }

while (1);
return 0;
}
Danke fürs durchschauen!!

Schönen Abend noch