electronics:projects:threebx

Diskussionen zu Tutorials, Änderungs- und Erweiterungswünsche
Antworten
Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

electronics:projects:threebx

Beitrag von cloidnerux » Fr Aug 17, 2012 9:32 pm

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.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: electronics:projects:threebx

Beitrag von Xin » So Aug 19, 2012 10:31 am

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?
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.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: electronics:projects:threebx

Beitrag von cloidnerux » So Aug 19, 2012 6:28 pm

Was mache ich egt, wenn ich als Datum eine 0 senden will und evt der Empfänger aus dem Takt gekommen ist
Im Stream sieht ja eine Übertagung so aus:
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

Antworten