Hi, danke für die Links.

Ich habe mir das Byte-Stuffing angeschaut, mit dem sollte das eigentlich funktionieren.
Wenn ich z.B. als Start-Sequenz 1111 1111 nehme ergibt sich sowas:

Code:
1. Byte 1111 1111 "Start-Sequenz"
2. Byte 1001 1001 "Befehl"
3. Byte 1111 1111 "low Byte"
4. Byte 1111 1111 Es wird nochmals die Start-Sequenz "reingestopft", weil das low-Byte 1111 1111 ist
5. Byte 0001 1101 "high-Byte"
Die maximale Länge einer Nachricht ist dann, wenn Befehl, 1. Byte und 2. Byte 1111 1111 sind. Dann wird nämlich einmal die Start-Sequenz eingefügt, und vor alle 3 Bytes nochmal die Startsequenz, somit ergeben sich 7 Byte.

Wie der Empfänger das auswertet, verstehe ich aber überhaupt nicht...
Ich werd aus dem Bascom Code http://www.rn-wissen.de/index.php/Ba...#Byte-Stuffing nicht schlau...

Ich habe mir aber noch was anderes gedacht:
Der Sender sendet zu Beginn einer Nachricht die 3 Bytes
1111 1111
1111 1111
1111 1111
nur um anzuzeigen, dass eine Nachricht beginnt.
Wenn ich dann noch definiere, dass der Befehl nie 1111 1111 sein darf, dann ist es ausgeschlossen, dass diese Start-Sequenz in der normalen Nachricht vorkommt.
Der Empfänger hat dann einen 3 Byte großen ringbuffer, der jedes mal überprüft wird, wenn ein Zeichen hineingeschrieben wird. Wenn der Ringbuffer dann 11111111 11111111 11111111 ist, dann weiß der Empfänger, dass eine neue Nachricht beginnt, zählt mit, bis 3 neue Zeichen in den Rinbuffer geschrieben wurden, wertet den Ringbuffer aus und setzt den Zähler wieder auf 0.

Die Methode ist zwar sicher nicht so elegant, aber würde doch funktionieren oder?

Lieber wäre es mir aber wenn ich irgendwie einen C-Code für den Empfänger für das Byte-Stuffing zusammenbringen würde...

lg Christoph