Zitat Zitat von chido72 Beitrag anzeigen
hallo,
das programm soll eigentlich wie im titel beschrieben ablaufen...
funktioniert aber irgendwie nicht...

bitte werft mal´nen kurzen blick drauf, wo grob der fehler stecken könnte....
Was ist irgendwie nicht? Was macht er was er nicht machen soll?

Eines das ich mit sicherheit sagen kann ist das du Odometrie verwendest wann auch die BackLEDs noch angeschaltet können sein. (BackLEDs an/auf auf Basis von i, ... wann aber ein Kollision erkannt wird geht es im Dreh-funktion und kann es die Flachen nicht mehr zählen) Das geht nicht zusammen weil die Schaltung das ausschließt.

Zweiter:
PHP-Code:
int main(void)
{
  
int i;
 
  
Init();
  
FrontLED(ON);
  
StatusLED(OFF);
  
LineData(lineData);
  
ADOffset lineData[LEFT] - lineData[RIGHT];
  
speedLeft speedRight SPEED;
  for (;;)
    
MotorDir (FWD,FWD);  // Dein for-schleife wiederholt nur dass für immer!!!
    
{  // Diese klammern ist kein teil der for-Schleife!!!
      
LineData(lineData);
      
= (lineData[LEFT] - lineData[RIGHT]) - ADOffset;
 
      if ( 
>= 4)
      {
        
BackLED(OFF,ON);
        
LineLeft();
      }
      else if ( 
<= -4)
      {
        
BackLED(ON,OFF);
        
LineRight();
      }
      else
      {
        
BackLED(OFF,OFF);
        
speedLeft speedRight SPEED;
      }
 
      
MotorSpeed(speedLeft,speedRight);
      
Kollision();
    }