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
@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
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.