Genau, während er seine Sensoren misst fährt er einfach weiter. Er zittert nur zwischen fahren und anhalten für eine periode von 200 Milisekunden. Und geht deshalb auf halbe fahrt (von halbe fahrt).

Hier ist meine Vorschlag. Achte auf die BackLEDs.

Code:
int main(void)
    {
	Init();

	unsigned int lineData[2], STOP[2]; // Stopwert seitenabhängig verwalten
	
	unsigned char Beleuchtet[2]; // Sensor wert über STOP-Wert? (boolean)
		
	LineData(lineData); // 
    LineData(lineData);

    STOP[0] = lineData[0]+10; // STOP wert Berechnen (links)
    STOP[1] = lineData[1]+10; // STOP wert Berechnen (rechts)

	MotorDir(FWD,FWD);	// vorwärts   
    MotorSpeed(180,180);
    BackLED(OFF,OFF);
	
	while(1)
    {	
		LineData(lineData);
			
		if (lineData[0] > STOP[0])
		{	Beleuchtet[0]=1;	// Ich sehe eine Taschenlampe auf Links
		}	
		else Beleuchtet[0]=0;	// Ich sehe keine Taschenlampe auf Links
		if (lineData[1] > STOP[1])
		{	Beleuchtet[1]=1;	// Ich sehe eine Taschenlampe auf Rechts
		}	
		else Beleuchtet[1]=0;	// Ich sehe keine Taschenlampe auf Rechts
			
		// BackLEDs anschalten gleich wie Beleuchtung: 'Gultig' = ungleich 0 = ON, 'Nicht Gultig' = gleich 0 = OFF
			BackLEDs(Beleuchtet[0],Beleuchtet[1]);
			
		// Sonnst kriegen wir keine Ahnung was passiert.		
			
		if (Beleuchtet[0] && Beleuchtet[1])
		{
			// Licht fällt auf Beide Sensoren
			MotorDir(BREAK,BREAK);
			MotorSpeed(0,0);
		}
		else
		{
			// Licht? Macht mich nichts!
			MotorDir(FWD,FWD);	// Vorwärts wieder!  
			MotorSpeed(180,180);
		}
				
		Msleep(200);
		BackLED(OFF,OFF);
            
	}
	
    return 0;
}