So, hab mal alles (für die Fehlersuche) unnötige rausgeschmissen. Siehe 
Anhang.
Des weiteren fehlen die LCD routinen, aber das sind die bekannten 
"AVR-GCC-Tutorial/LCD-Ansteuerung"
Nochmal eine kurze Fehlerbeschreibung:
Eigentlich dürfte die while Schleife
| 1 |       if(stateSemicolon<5){
 | 
| 2 |         while(1){
 | 
| 3 |           cli();
 | 
| 4 |           lcd_setcursor(0 ,1 );
 | 
| 5 |           lcd_string("Fehler");
 | 
| 6 |           }
 | 
nie erreicht werden,
da direkt davor folgender Ausdruck steht:
| 1 |     else if(stateSemicolon>4 && stateSemicolon<10 && counterMain==0){
 | 
Von der RS232 Schnittstelle werden permanent Nachrichten mit je 150 
Zahlen getrennt durch ';' empfangen.
Zu Beginn jeder Nachricht wird ein '?' gesendet, an dem dann der 
Nachrichtenbeginn erkannt wird.
Zum testen sende ich dem yC 30-40 Nachrichten mit je 150 Zahlen mit 
einer Geschwindigkeit von 57600Baud. Der Fehler tritt manchmal sehr 
schnell auf (geschätzt: nach einigen wenigen Nachrichten) manchmal aber 
auch erst sehr spät (irgendwann nach der 20. bis 30. Nachricht oder noch 
später).
Die Frage war, wie es möglich ist, dass das Programm in die while 
Schleife läuft. stateSemicolon zählt nach oben.
Viele Grüße
Ben