{
/*
Die Funktion wird auf alle Faelle erst nach dem Empfang von der
vorgegebenen Anzahl Zeichen verlassen. blocking mode
*/
while (i < length)
{
while(!(UCSRA & (1<<RXC)));
data [i++] = UDR;
}
Da ist der Fehler: In der While-Schleife prüfst du, ob das RXC-Bit NICHT (!!!) gesetzt ist, du möchtest eigentlich das Gegenteil machen (Abbruch wenn das Bit gelöscht ist, sonst weitermachen).
Lesezeichen