Hi Markus,
wenn die Fehlerrate mit der Länge des Datenworts (Startbit + Daten + Partity + Stopbits)
zunimmt, dann ist das Problem häufig, dass die Baudrate nicht exakt stimmt.
Laut Datenblatt muss für den ATMega16 bei 3.6864MHz ein UBRR von 47 eingestellt
werden für 4800 Baud. Vermutlich liegt da der Fehler.
Hintergrund des ganzen ist die Synchronisierung auf Empfängerseite:
Empfängt der Empfänger die erste Flanke des Startbits, dann synchronisiert er
seinen Abtasttakt. Stimmen die Baudraten beim Sender und Empfänger exakt überein,
dann wird jedes Bit genau "in der Mitte" vom Empfänger abgetastet und gelesen.
Sind die Baudraten leicht verschieden, dann kann es passieren, dass der Empfänger das
erste Datenbit "ziemlich in der Mitte", das zweite "einigermaßen in der Mitte",
das dritte "gerade noch so eben am Rand" erwischt und das vierte überspringt...
Der Fehler wird also mit der Länge des Datenworts immer größer. Vermutlich
funktioniert es deshalb bei Dir noch bei 5 Datenbits aber nicht bei 8 Datenbits.
Grüße,
Hans
Lesezeichen