Das mit den letzter wert im SerRead stimmt. Er wartet einer zeit die diesen anzahl von zeichen enspricht. Also 2000 ist den zeit von 2000 zeichen, das it 20.000 bits, und mit 2400 baud ubertragung gleich 8,33 sekunden bis er weiter geht in dem while schleife. (und dann den timeout zeichen "T" reinsteckt, was aber schwer zu entdecken ist, weil die "T" auch gewunscht ubergesendet ist, ... machts aber nichts in diesen fall)

Deshalb geht SerRead(data,y,0); gut, weil es nur die anzahl von y abwartet.

Aber mit ganzen worter ("WWxxc") ist das ein bischen fehlerhaft. Asuro muss den zeichen genau so in diesen folge empfangen. Wenn einer diesen zeichen nicht uberkommt wirdt wirdt das ganze empfangene wort geloscht (weil es nicht stimmt), und in dem nachtste SerRead gehts weiter. Besser ist es die einzelne zeichen zu empfangen und in deinem program die reihefolge zu uberwachen. Wenn es stimmt muss er etwas tun wie den led anschalten.