Hallo Liggi,

danke für die Antwort. Ich habe den Code jetzt folgendermaßen abgeändert:

Code:
#include "asuro.h"

#define SPEED  150

int main(void) 
{ 
  LineDemo(); 
  return 0; 
}

int speedLeft,speedRight;
unsigned int lineData[2];
int ADOffset;

void LineLeft (void)
{
	speedLeft  += 1;
	if (speedLeft > 150) speedLeft = 151;
}

void LineRight (void)
{
	speedRight  += 1;
	if (speedRight > 150) speedRight = 151;
}

void LineDemo(void)
{
int i;
unsigned char j;

	Init();

	FrontLED(ON);
	for (j = 0; j < 255; j++) LineData(lineData);
	LineData(lineData);
	ADOffset = lineData[0] - lineData[1];
	speedLeft = speedRight = SPEED;
	for(;;) {
		LineData(lineData);
		i = (lineData[0] - lineData[1]) - ADOffset;
		if ( i > 4) {
			StatusLED(GREEN);
			LineLeft();
		}
		else if ( i < -4) {
			StatusLED(RED);
			LineRight();
		}
		else {
			StatusLED(OFF);
			speedLeft = speedRight = SPEED;
		}
		MotorSpeed(speedLeft,speedRight);
	} 
}
War anscheinend nichts, der ASURO fährt jetzt schnurgeradeaus - hab ich's falsch gemacht?