http://www.proggen.org/doku.php?id=elec ... ts:threebx
Hab mal kurz nen kleines Protokoll von mir Dokumentiert.
Vlt kann ja mal wer drüberlesen.
MfG cloidnerux.
electronics:projects:threebx
- cloidnerux
- Moderator
- Beiträge: 3123
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
electronics:projects:threebx
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
- Xin
- nur zu Besuch hier
- Beiträge: 8859
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: electronics:projects:threebx
Ich habe mal einige Rechtschreibfehler korrigiert und evt zu eventuell und egt zu eigentlich. ^^
Was mache ich egt, wenn ich als Datum eine 0 senden will und evt der Empfänger aus dem Takt gekommen ist?
Was mache ich egt, wenn ich als Datum eine 0 senden will und evt der Empfänger aus dem Takt gekommen ist?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
- cloidnerux
- Moderator
- Beiträge: 3123
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: electronics:projects:threebx
Im Stream sieht ja eine Übertagung so aus:Was mache ich egt, wenn ich als Datum eine 0 senden will und evt der Empfänger aus dem Takt gekommen ist
0x00 0x01 0xYY 0x00 0x02 0xZZ 0x00 0x01 0xYY 0x00 0x01 0xYY
Da du ein Datenpaket erst aus dem Übergang 0->Nicht 0 erkennt, ist die Folge 0x00 0x00 0x01 erst mit dem Übergang vom 2 auf das 3 Byte als neues Datenpaket zu erkennen.
Du musst aber beachten, dass dein Datum noch nicht/falsch übernommen wurde und du daher das Datum kontinuierlich senden solltest, dafür ist das Protokoll ausgelegt.
Um das ganze nochmal theoretischer zu behandeln:
Du hast eine FSM mit 3 Zuständen: wait, type, data.
Im default oder reset fall gehst du zu wait, im Fehlerfall auch.
von wait geht es nur zu type, wenn es die Kombination 0 und Nicht-0-Byte kommt. Das Nicht-0-Byte wird dann im type-Zustand ausgewertet und dann zu data gesprungen. In data übernimmst du das nächste Byte und springst zurück auf wait.
Sollte in type ein unbekannter Typ sein, ist es ein Fehlerfall.
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum