www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem bei PWM-Steuerung via DMX512


Autor: Harry (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag allerseits,

ich wende mich mit folgendem Problem an Euch:

Und zwar habe ich eine Applikation entworfen, in der ein 
ATmega8515/16MHz via DMX512 vier Kanäle empfängt und die Werte der 
empfangenen Bytes 1:1 als PWM-Wert (Soft-PWM) verwenden soll.

Der Empfang des DMX-Signals funktioniert super (Anregungen von der Seite 
von H. Hoelscher, angepasst an meine Anforderungen ==> übrigens 
super!!).

Die Abarbeitung der PWM-Routine habe ich aus dem Beitrag dieses Forums 
(http://www.mikrocontroller.net/articles/Soft-PWM) welcher eigentlich 
auch ganz gut arbeitet.

Nun mein Problem: Anscheinend gibt es im Zusammenspiel beider 
Komponenten DMX/PWM Timingprobleme irgendeiner Art. Wenn ich nämlich 
LED-Treiber mit dem System ansteuere, sind deutliche Helligkeits-Flicker 
zu sehen. Egal, ob man langsam "hochdimmt" oder, ob der Wert unverändert 
bleibt. Die kurzen "Ausreißer" kann man auch am Oszi gut beobachten.

Ich hoffe, ich habe die Ausgangssituation und mein Problem konkret genug 
dargestellt und Ihr könnt mir bei der Lösung behilflich sein.

Besten Dank im Voraus.

Gruß

Harry

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Harry (Gast)

>Nun mein Problem: Anscheinend gibt es im Zusammenspiel beider
>Komponenten DMX/PWM Timingprobleme irgendeiner Art.

Schon möglich, die Soft-PWm basiert darauf, dass sie oberste Priorität 
hat und praktisch kein anderer Interrupt dazwischenfunken kann.
In diesem Fall sollte man den DMX-Empfang besser per Polling machen, ist 
auch kein Problem, da dein Controller wahrscheinlich eh nix anders zu 
tun hat.

Der PWM-Interrupt dauert ca. 100 Takte, macht bei 8 MHz 12,5us. Ein Byte 
dauert bei DMX 44us, das passt locker. Vielleicht gehts auch mit 
Interrupts und du hast einen Fehler in deinem Programm.

Dein Quelltext ist unvollständig, es fehlt der UART-RX Interrupt.

MFG
Falk

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.