Gast
#2114448
Hey, vor einiger zeit hatte ich schonmal hier geschrieben, wegen einer
DMX Empfangsroutine, die ich "studiert" habe und etwas umgeschrieben.
Jetzt habe ich nochmal eine Frage dazu.
UART, Empfang usw. sind soweit geklärt. Der Empfang läuft in einer ISR
ab und nach dem alles erledigt wurde (Startbyte erkannt, Startadresse
eingelesen und erkannt) wird per rjmp der Befehl:
handle_byte:
clr dmx_status
;;VERARBEITUNG;;
reti
angesprungen.
Dort können also die DMX Daten verarbeitet werden.
Jetzt möchte ich damit LED's dimmen. Da es eine Matrix (4x4 RGB) wird
reichen also die Timer bzw. Hardware-PWM eines ATMegas nicht mehr aus.
(Dazu gleich nochmal die Frage nach Treibern)
In die Variable DMX_Byte lese ich das UDR ein. Jetzt habe ich allerdings
ja nicht nur einen Kanal den ich auswerten möchte.
Angenommen ich möchte 3 Kanäle auswerten. (Rot Grün Blau) Wie mache ich
das denn?
Ich habe mir dazu das Thema Mehrfachverzweigungen durchgelesen. Aber
eigtl ist das ja nicht sinnvoll, denn wenn die erste passende Adresse
abgearbeitet wurde wird ja zum Ende gesprungen?
in den Variablen frct_High und frct_Low habe ich die Startadresse
eingelesen. Die Startadresse des Moduls soll also die PWM für die Rote
LED sein. Das darauffolgende Byte, Startadresse + 1 soll die PWm für die
Grüne LED sein usw.
Wie arbeitet man das "geschickt" ab?
Danke schonmal für Antworten diesbezüglich.
Meine zweite Frage bezieht sich ebenfalls auf dieses Thema.
Später soll eine Matrix mit 4x4 RGb LED's angesteuert werden. Dafür
reichen die Hardware-PWM Kanäle eines Megas ja nicht mehr aus, und ich
möchte ungern 48 kanäle per SoftPWM machen.
jetzt gibt es ja Treiber Bausteine, die die PWM übernehmen, z.B.
"WS2801".
Diesem speziellen Baustein kann ich ja "einfach" das empfange Byte
übermitteln und es übernimmt sozusagen die PWM.
Jetzt wollte ich fragen, ob jemand schon Erfahrung mit solchen Treibern
hat oder sogar mal verglichen hat? Gibt es bei diesen Treiber eine Art
"Referenzprodukt", was wirklich gut ist? Also hohe PWM-Frequenz, hohe
Auflösung usw.
Natürlich wäre es auch schön, wenn es Treiber gibt, die gleich mehr als
3 Kanäle können.
Vielen Dank schon einmal für evtl. Antworten.
Grüße