Hallo

Ja, das erscheint mir auch seltsam, laut Code sollte der asuro 0xFE(=254) mal senden:

void SerialTest(void)
{
unsigned char data;
unsigned char i;
for (i = 0; i < 0xFE; i++) {
StatusLED(GREEN);
SerRead(&data,1,0xFFFE);
StatusLED(RED);
if (data != 'T') data += 1;
SerWrite(&data,1);
}
}
/* END Serial Test -------------------------- */
(Aus der Datei Test.c im Ordner SelfTest der asuro-CD)

Fragt sich nur, was er senden soll? Wenn er was empfängt ist es ja klar, aber was wird gesendet, wenn er nichts empfängt? Wird dann bis zum Timeout von SerRead() gewartet? Oder wird aufgrund eines Fehlers im Aufbau deines asuro oder wegen "Fremdlicht" bei SerRead() irgendwas eingelesen und gesendet? Wenn dieses "Irgendwas" ein nicht darstellbares Steuerzeichen sein sollte, würde es dein scheinbares "überspringen" des Serial-Test erklären. Vielleicht hilft das weiter:

...
StatusLED(RED);
if (data != 'T') data += 1;
if (( data < 32) || (data > 127)) StatusLED(YELLOW); // man könnte auch auf z.B. <'a' und >'z' testen
SerWrite(&data,1);
...

Wenn dann die StatusLED gelb leuchtet wird ein Steuerzeichen gesendet...

gruß

mic

Nachtrag: Ähm, manchmal bin ich schon bescheuert. Vermutlich kannst du ja noch gar nicht flushen. Trotzdem bleibt die Frage: Was wird gesendet, wenn nichts empfangen wurde?