Forum: Mikrocontroller und Digitale Elektronik USART soll DMX Break erkennen


von Christian K. (christiankarle)


Lesenswert?

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 :)

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

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

von Christian K. (christiankarle)


Lesenswert?

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 :)

von Peter D. (peda)


Lesenswert?

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.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

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
Noch kein Account? Hier anmelden.