Hallo Ph33,
Ich übertrage jetzt bei jedem TIMER0-Interrupt (125/sek) zwei
Bytes: die Nummer der Messstelle und den digitalisierten Wert.
Dadurch korrigieren sich evtl. Übertragungsfehler selbst. Ich
kann mir zwar immer noch nicht vorstellen, wie z.B.
„Frameerror“ oder „Overrunerror“ zustandekommen sollen; mein
Übertragungsweg ist eine massive Leiterbahn! Deswegen frage
ich diese Errorflags nicht ab. Vielleicht später mal, wenn ich
reingefallen bin.
Tja, genau das macht den Unterschied zwischen Bastellösung und stabilem professionellem Programm!
Es kann immer zu einem Bitfehler kommen, sei es durch Störungen in der Speisung oder über HF, weil einer sein Handy neben deine Elektronik legt oder der Blitz in de Nähe einschlägt.
Es kann Betazerfälle im Gehäusematerial geben, kosmische Strahlung und wenns der Teufel will, regiert genau in deinem Chip ein Meson mit einem der Atomkerne.
Je kleiner di Chipstrukturen werden, umso kleiner wird ach die nötige Energie um ein Bit umzuwerfen.
Und wegen Betazerfall: Anfangs gab es DRAM nur im Keramikgehäuse. Beim Epoxy hatte man damals die Verunreinigungen noch nicht im Griff und DRAM wurde durch die Betazerfälle zu unzuverlässig.
Und wie ich dir geschrieben habe, kann ein UART nach einem Fehler, seine weiter Zusammenarbeit blockieren, bis der Fehler quittiert wurde. Dein Gerät läuft dann erst nach einem Neustart weiter, wenn du die entsprechende Fehlerbehandlung einsparst. Meistens ist so etwas dann die Ursache, wieso sich in Gerät 1x im Monat aufhängt.
Im einfachsten Fall, quittiert man die Fehlermeldung einfach und wirft das gestört empfange Zeichen einfach weg.
Dies bedingt aber wiederum eine andere Technik: Plausibilitätsprüfung.
Du sendest jetzt immer 2 Byte. Der Empfänge muss irgendwie erkennen können, welche 2 Bytes zusammen ein Pärchen bilden, als er muss sich wieder synchronisieren können, wenn mal ein Byte verloren geht.
Grundsätzlich sollte man alles was irgendwie von Aussen kommt auf gültige Wertebereiche testen und andernfalls entsprechend reagieren.
Gute Software macht dies auch an Modulgrenzen, man weiss nie ob nicht ein doofer Programmierer einen falschen Aufruf macht! 
Oft funktionieren Berechnungen nur für einen bestimmten Wertebereich, ausserhalb gibt es Unter- oder Überläufe und die Ariane stürzt ab!
http://www4.in.tum.de/lehre/seminare/ps/WS0203/desas…
Hier noch ein paar weitere Müsterchen:
http://www.xing.com/net/qmsoftware/softwarefehler-ko…
http://www5.in.tum.de/~huckle/bugs.html
MfG Peter(TOO)