Word to Byte für DMX

Peaty21

Level-2
Beiträge
17
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Freunde! Ich habe zur aufgabe in Codesys 3.5 DMX leuchten anzusteuern. Zum versuch erstmal hier nur für einen kanal. Später sind hier ca. 30 RGBW vorschaltgeräte hinter die in Gruppen farblich gesteuern werden sollen. Da diese per Taster von extern als auch der Visu gesteuert werden sollen, stell sich mir die Frage wie.

Mittel Dimmerbaustein FbDimSingleButton geht das leider nicht so einfach wie geplant. Dieser gibt mir ein WORD raus und ich brauche ein Byte bis 255 beschränkt und nicht 32000. Habe dann versucht aus dem Word ein Byte mittel FuAI zu machen. Auch das haut nicht so richtig hin. Hat jemand eine idee?

cp_dmx.JPG



Vielen lieben dank an alle!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn der Baustein ein WORD heraus gibt, musst du den Bereich erst mal per Skalierung auf den Bereich des Bytes bringen, in dem Fall reicht eine einfache Division. Erst danach kann eine sinnvolle Umwandlung stattfinden.
 
Wenn der Baustein ein WORD heraus gibt, musst du den Bereich erst mal per Skalierung auf den Bereich des Bytes bringen, in dem Fall reicht eine einfache Division. Erst danach kann eine sinnvolle Umwandlung stattfinden.
Kannst du das mir bitte mal auf „idioten sicher“ erklären?😅 Division hab ich verstanden stehe aber irgendwie aufm Schlauch….
 
Du willst 0..32000 nach 0..255 skalieren? Dann brauchst du nur durch 125.49 dividieren.
Vorher nach REAL wandeln und das REAL-Ergebnis der Division wieder nach Ganzzahl wandeln.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

laut Doku der Bibliothek skaliert der Ausgang zwischen 0 und 32767, nicht 32000. Da würde der Teiler 128 (32768/256) reichen, sogar ohne Real Wandlung.

Bitshift um 7 Bits nach rechts entspricht auch Teilung durch 128.

Hatte das aber auch noch aus einem anderen Grund genannt
32767 = b0111_1111_1111_1111 = 255
16383 = b0011_1111_1111_1111 = 127
0 = b0000_0000_0000_0000 = 0

Wenn man sich das so ansieht, sind nur die markierten Bits relevant, daher das bitshift.

Gruß
 
Zurück
Oben