Ich hab mir mal die Sourcen von readserial angeguckt:
void SerRead(unsigned char *data, unsigned char length, unsigned int timeout)
{
unsigned char i = 0;
unsigned int time = 0;
UCSRB = 0x10; // enable receiver
/* non blocking */
if (timeout != 0) {
while (i < length && time++ < timeout) {
if (UCSRA & 0x80) {
data[i++] = UDR;
time = 0;
}
}
if (time > timeout) data[0] = 'T';
}
/* blocking */
else {
while (i < length) {
if (UCSRA & 0x80)
data[i++] = UDR;
}
}
}

D.h.: Wenn er nichts empfängt sollte er ein T ausgeben, da timeout != 0.
Ich verstehe es einfach nicht. Darüber müsste ich mehr über die Funktionsweise
verstehen (UCSRA / UDR was ist das, wo sind hier Wartezyklen).

Ich kann nicht sehen, dass irgend etwas geschrieben wird, auch leuchtet die LED nicht Orange. Ich hab auch schon einen neuen Satz Batterien ausprobiert.....
Da kommt dann manchmal auch wieder "VL"
verzweifelnd...
Hauke