Hier nochmal mein Code

Mein Programm sollte als erstes die Werte der Fotodioden einlesen, diese Werte speichern und später in der while Schleife wieder Einlesen. Somit bekommt man zwei Werte. Diese Werte sollen verglichen werden und der kleinere Wert vom grösseren Abziehen.
Ist die Differenz grösser als der Eingestellte Wert, soll er stehen bleiben. Was bedeuten würde, dass sich der Untergrund geändert hat.
Am Schluss wird der erste Eingelesene Wert aktualisiert.

Den Einstellwert habe ich nochmals angepasst. Nun fährt er jedoch, reagiert aber nicht mehr auf die Ergebnisse.

Code:
#include "asuro.h" 


int main (void)
{
  unsigned int lineData[2];
  unsigned int erg,erg2;
  unsigned char diff;
  
    Init();
	LineData(lineData);
	erg=lineData[0]+lineData[1];
	FrontLED(ON);
	while (1)
	{
	    
	  LineData(lineData);
	  erg2=lineData[0]+lineData[1];
	  if (erg>erg2)
	  {
	  diff=erg-erg2;
	  }
          else
          {
          diff=erg2-erg;
          }
          if(diff>10)
          {
          MotorDir(BREAK,BREAK);
	  MotorSpeed(0,0);
	  StatusLED(RED);
	  }
	  else 
	  {
	  MotorDir(FWD,FWD);
	  MotorSpeed(200,200);
	  StatusLED(YELLOW);
	  }
          erg=erg2;
	}
}