Ich habe jetzt hier einmal eine kleine Funktion geschrieben, aber ich bin mir nicht sicher ob die auch funktioniert. (bis jetzt nur Theorie)

gesch = Geschwindichkeit Werte von 0-255
weit = Strecke in ! cm ! Werte zwischen -32768 .. +32767

Code:
   unsigned int data[2];
   int weit;
   unsigned char gesch;
   unsigned int gef;
   unsigned int mmm;
   
   
   int drive(int weit, unsigned char gesch)
   {
     if(weit > 0){
       MotorDir(FWD,FWD);}
     else if(weit < 0){
       MotorDir(RWD,RWD);}
     else{  
       break;}
            
     MotorSpeed (gesch,gesch);
     OdometrieData(data);
     
     if(data[0] < 500){
       hellichkeit = 0;}
     else{
       hellichkeit = 1;}         
     OdometrieData(data);
       
     while (weit < gef){       
       if(hellichkeit == 0){
         if(data[0] > 500){
           mmm = mmm + 68;
           hellichkeit = 1;}}
       else{
         if(data[0] < 500){
           mmm = mmm + 68;
           hellichkeit = 0;}}
       gef = mmm/100;}
       
     MotorSpeed(BREAK,BREAK);}
Das er garade fährt und andere Kontrollen während der Funktion muss man hald noch ein bauen

gruß
Johannes