Guten Morgen liebe Community, seit ca. 2 Stunden mache ich mir Kopfzerbrechen darüber, wie ich es schaffe das mein uC den Break beim DMX-Signal erkennen kann. Ich weis, das wenn dieser Break im DMX-Signal gesendet wird, der USART einen Framerror erkennnt und das Bit FE im USARTA Register gesetzt wird. Doch nun zu meinem schlimmeren Problem... Ich möchte das er danach das Startbyte auslässt und die nächsten 10 Bytes in einem Array speichert. Habe dazu folgenden Ansatz: (USART wurde bereits Initialisiert...es geht nur speziell um das Erkennen des Breaks und das Speichern der Bytes in einem Array) temp=UDR; if(FE>>0){ dmx_status=Break; } else{ dmx_staus=0; } if(dmx_status==Break && dmx_count < 10 && array_complete==0){ array[dmx_startadresse+dmx_count]=temp; dmx_count++; } if(dmx_count==10){ array_complete==1; } Sind meine Überlegungen richtig? Ich wäre sehr dankbar für Hilfe, bin Neuling auf dem Gebiet C und DMX :)
Dann mach mal die Glotzböppel auf dieser Webseite auf: Gibts ne Beschreibung als pdf und auch gleich noch C Code dazu. http://www.hoelscher-hi.de/hendrik/light/ressources.htm
Martin Wende schrieb: > Dann mach mal die Glotzböppel auf dieser Webseite auf: > Gibts ne Beschreibung als pdf und auch gleich noch C Code dazu. > http://www.hoelscher-hi.de/hendrik/light/ressources.htm Hallo Herr Wende, ich kenne diese Seite bereits und bin nicht sehr überzeugt von ihr... Außerdem glaube ich das der C-Code der dort angepriesen wird, nicht funktioniert... Desweiteren ist es nicht meine Art, einfach etwas abzuschreiben, ohne es verstanden zu haben. Mein Ziel ist es, die Vorgänge zu verstehen... Ich wäre deshalb um eine genaue Erklärung der Vorgänge sehr dankbar :)
Ich würde ganz profan das Array 11 Byte groß machen. Und beim Frame-Error würde ich das Datenbyte noch auf 0x00 prüfen. Nicht, daß es ne Störung ist.
Der C Code funktioniert sowas von, sonst wär mein Zimmerlicht dunkel ;) Zudem sagte ich ja nix von abschreiben, sondern angucken.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.