Forum: Mikrocontroller und Digitale Elektronik USART soll DMX Break erkennen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Christian K. (christiankarle)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Der C Code funktioniert sowas von, sonst wär mein Zimmerlicht dunkel ;)

Zudem sagte ich ja nix von abschreiben, sondern angucken.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.