Code:
void Fahren(void)                               /* Vorwärts fahren */ 
{
    SerWrite ("FhS", 3);                         /* "Fahren start" senden uber IR*/
 
    unsigned int data[2]; 
    signed int status[2]={0,0}; 
    signed int difference=0; 
    MotorDir(FWD, FWD);
...
...
        // Z?ldifferenz passend auf die Motoren verteilen 
        if (difference>0) MotorSpeed(180-difference,180); 
        else MotorSpeed(180,180+difference); 
     }
 
  SerWrite("FhE",3);             /* "Fahren Ende" senden uber IR*/
}
Und ähnliche codes. Zum beispiel:

MS,ME: Main start und ende.
FcS, FcE: Firstcol start und ende,
ScS, ScE: Secondcol start und ende,
usw. fur die andere functionen in dein program.

Und vieleicht die ADC werten auch ubermitteln. Aber das konnte zuviel daten werden zum ubertragen. [Edit] Dafur ist aber PrintInt besser ge-eignet. Lies mahl print.c im lib verzeichnis durch.

Am ende hast du auch eine while(1) schleife (nach dem Disco anruf). Besser dort auch etwas senden damit du weist er wird da immer stecken bleiben.