Bit of a fudge, but it works well enough
Again, the lack of floating point maths in PBP means the calculations are not exact, but this way every 1% increment equals a block of 41 steps on the PCA chip, so 50% brightness = 2050 but that's close enough to the 2047 is should be and to be honest I doubt if the human eye could distinguish the differenceCode:'******************************************************************************* ' Set Brightness levels for each channel brightness: B_max = (4095/100)*maxbright Lcdout $FE,2 LCDOUT $FE,$80,"Set Max Brightness" IF H_butt = 0 THEN GOSUB up IF M_butt = 0 THEN GOSUB down If maxbright = 100 then LCDOUT $FE,$C0,"Channel 1 " LCDOut $FE,$D4,#maxbright,"%" endif If maxbright =0 or maxbright <10 then LCDOUT$FE,$C0,"Channel 1 " LCDOut $FE,$D4,dec1 maxbright,"% " endif if maxbright >=10 and maxbright <100 then LCDOUT$FE,$C0,"Channel 1 " LCDOut $FE,$D4,dec2 maxbright,"% " endif If S_butt = 0 then pause 100 goto brightness2 endif goto brightness brightness2: W_max = (4095/100)*maxbright Lcdout $FE,2 LCDOUT $FE,$80,"Set Max Brightness" IF H_butt = 0 THEN GOSUB up IF M_butt = 0 THEN GOSUB down If maxbright = 100 then LCDOUT $FE,$C0,"Channel 2 " LCDOut $FE,$D4,#maxbright,"%" endif If maxbright =0 or maxbright <10 then LCDOUT$FE,$C0,"Channel 2 " LCDOut $FE,$D4,dec1 maxbright,"% " endif if maxbright >=10 and maxbright <100 then LCDOUT$FE,$C0,"Channel 2 " LCDOut $FE,$D4,dec2 maxbright,"% " endif pause 200 If S_butt = 0 then pause 100 LCDOUT $FE,1 goto mainmenu endif goto brightness2 up: maxbright = maxbright + 1 IF maxbright >= 100 THEN maxbright = 100 pause 250 RETURN down: maxbright = maxbright - 1 IF maxbright <= 0 THEN maxbright = 0 pause 250 RETURN![]()




Bookmarks