Problem bei PWM-Steuerung via DMX512

Gast #1159059
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
Angehängte Dateien:
#1159228
@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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.