Zitat von stromer64
Beitrag anzeigen
Vielleicht macht der Code unten in etwa das, was Du möchtest:
Code:
/* Variable für die Lautstärke dem EibPC bekanntmachen */ AudioVolume = 0u08; /* 0 ... 15 */ /* systemstart() geht beim Starten des EibPC-Programms auf EIN. Es wird dann die Lautstärke auf 0100 = 4 unsigned byte gesetzt */ if systemstart() then AudioVolume = 4u08 endif /* Aus AudioVolume werden jeweils Bits 1...4 isoliert und dann als Variable mit EIN bzw. AUS belegt. */ /* Es wird bei Änderung von AudioVolumen dann immer gleich neu berechnet, ob sich das Bit geändert hat */ GABit1 = convert( mod( AudioVolume, 2u08 ), 0b01) GABit2 = convert( mod (div( AudioVolume, 2u08 ),2), 0b01) GABit3 = convert( mod (div( AudioVolume, 4u08 ),2), 0b01) GABit4 = convert( mod (div( AudioVolume, 8u08 ),2), 0b01) /* sollte sich im vorigen Programmlauf eine Variable geändert haben, so schreiben wir deren Wert auf die passende Gruppenadresse deines LED-Aktors */ /* Du mußt natürlich statt '9/9/1'b01 die jeweils korrekte Gruppenadresse im Programm eintragen */ if change( GABit1 ) then write( '9/9/1'b01, GABit1 ) endif if change( GABit2 ) then write( '9/9/2'b01, GABit2 ) endif if change( GABit3 ) then write( '9/9/3'b01, GABit3 ) endif if change( GABit4 ) then write( '9/9/4'b01, GABit4 ) endif
Wenn das wichtig wird, müßte man sich eine andere Lösung überlegen.
Ich hoffe, jetzt wird's klarer.
Gruß,
Bernd
Kommentar