10 REM RGB_LED_Demo
20 REM Play with 16 multi coloured LEDs
30 REM Jochen Lueg
40 REM January 2013
50 REM http://roevalley.com
60
70 ON ERROR PROCerror:STOP
80
90 PROCinit
100
110
120 REM Red, green and blue
130 REM Flash red
140 T%=40
150
160 REM Flash red
170 PROCrgb_flash(0,1,1,R1%,G1%,B1%,S1%,T%)
180
190 REM shift red
200 PROCturn_on(0,1,1,R2%,G2%,B2%,S2%)
210 REM Flash green
220 PROCrgb_flash(1,0,1,R1%,G1%,B1%,S1%,T%)
230
240 REM Shift red
250 PROCturn_on(0,1,1,R3%,G3%,B3%,S3%)
260 REM Shift green
270 PROCturn_on(1,0,1,R2%,G2%,B2%,S2%)
280 REM Flash blue
290 PROCrgb_flash(1,1,0,R1%,G1%,B1%,S1%,T%)
300 REPEAT
310 REM Shift red
320 PROCturn_on(0,1,1,R4%,G4%,B4%,S4%)
330 REM Shift green
340 PROCturn_on(1,0,1,R3%,G3%,B3%,S3%)
350 REM Shift blue
360 PROCturn_on(1,1,0,R2%,G2%,B2%,S2%)
370 REM Flash cyan
380 PROCrgb_flash(1,0,0,R1%,G1%,B1%,S1%,T%)
390
400 REM Shift green
410 PROCturn_on(1,0,1,R4%,G4%,B4%,S4%)
420 REM Shift blue
430 PROCturn_on(1,1,0,R3%,G3%,B3%,S3%)
440 REM Shift cyan
450 PROCturn_on(1,0,0,R2%,G2%,B2%,S2%)
460 REM Flash magenta
470 PROCrgb_flash(0,1,0,R1%,G1%,B1%,S1%,T%)
480
490 REM Shift blue
500 PROCturn_on(1,1,0,R4%,G4%,B4%,S4%)
510 REM Shift cyan
520 PROCturn_on(1,0,0,R3%,G3%,B3%,S3%)
530 REM Shift magenta
540 PROCturn_on(0,1,0,R2%,G2%,B2%,S2%)
550 REM flash yellow
560 PROCrgb_flash(0,0,1,R1%,G1%,B1%,S1%,T%)
570
580 REM Shift cyan
590 PROCturn_on(1,0,0,R4%,G4%,B4%,S4%)
600 REM Shift magenta
610 PROCturn_on(0,1,0,R3%,G3%,B3%,S3%)
620 REM Shift yellow
630 PROCturn_on(0,0,1,R2%,G2%,B2%,S2%)
640 REM flash white
650 PROCrgb_flash(0,0,0,R1%,G1%,B1%,S1%,T%)
660
670 REM Shift magenta
680 PROCturn_on(0,1,0,R4%,G4%,B4%,S4%)
690 REM Shift yellow
700 PROCturn_on(0,0,1,R3%,G3%,B3%,S3%)
710 REM Shift white
720 PROCturn_on(0,0,0,R2%,G2%,B2%,S2%)
730 REM Flash red
740 PROCrgb_flash(0,1,1,R1%,G1%,B1%,S1%,T%)
750
760 REM Shift yellow
770 PROCturn_on(0,0,1,R4%,G4%,B4%,S4%)
780 REM Shift white
790 PROCturn_on(0,0,0,R3%,G3%,B3%,S3%)
800 REM Shift red
810 PROCturn_on(0,1,1,R2%,G2%,B2%,S2%)
820 REM Flah green
830 PROCrgb_flash(1,0,1,R1%,G1%,B1%,S1%,T%)
840
850 REM Shift white
860 PROCturn_on(0,0,0,R4%,G4%,B4%,S4%)
870 REM Shift red
880 PROCturn_on(0,1,1,R3%,G3%,B3%,S3%)
890 REM Shift green
900 PROCturn_on(1,0,1,R2%,G2%,B2%,S2%)
910 REM Flash blue
920 PROCrgb_flash(1,1,0,R1%,G1%,B1%,S1%,T%)
930
940
950 UNTIL FALSE
960 *QUIT
970 STOP
980
990 DEFPROCrandom
1000
1010 FOR J%=0 TO 15
1020 SYS"GPIO_WriteData",Port%(J%),0
1030 NEXT
1040
1050 ENDPROC
1060
1070
1080
1090 DEFPROCrgb_flash(r%,g%,b%,R%,G%,B%,S%,t%)
1100 SYS"GPIO_WriteData",R%,r%
1110 SYS"GPIO_WriteData",G%,g%
1120 SYS"GPIO_WriteData",B%,b%
1130 SYS"GPIO_WriteData",S%,1
1140 Key$=INKEY$(1)
1150 IF Key$="1" T%=10
1160 IF Key$="2" T%=20
1170 IF Key$="3" T%=30
1180 IF Key$="4" T%=40
1190 IF Key$="5" T%=50
1200 IF Key$="6" T%=60
1210 IF Key$="7" T%=70
1220 IF Key$="8" T%=80
1230 IF Key$="Q" OR Key$="q" PROCstop:END
1240
1250 TIME=0:REPEAT UNTIL TIME>T%
1260 ENDPROC
1270
1280
1290 DEFPROCturn_on(r%,g%,b%,R%,G%,B%,S%)
1300 SYS"GPIO_WriteData",R%,r%
1310 SYS"GPIO_WriteData",G%,g%
1320 SYS"GPIO_WriteData",B%,b%
1330 SYS"GPIO_WriteData",S%,1
1340 ENDPROC
1350
1360
1370 DEFPROCstop
1390 FOR J%=0 TO 15
1400 SYS"GPIO_WriteData",Port%(J%),0
1410 NEXT
1440 ENDPROC
1450
1460
1470 DEFPROCerror
1520 PROCstop
1530 PRINT REPORT$;" at line ";ERL:END
1540 ENDPROC
1550
1560
1570 DEFPROCinit
1580 OSCLI"RMEnsure GPIO 0.00 RMLoad GPIO"
1590 OSCLI"RMensure GPIO 0.40 ERROR Please install the GPIO module"
1600
1610 SYS"GPIO_EnableI2C",0
1620 SYS"GPIO_ExpAsGPIO",2
1630
1640 DIM Port%(15)
1650 REM ISSUE 2 Interface board 5x16
1660 Port%()=2,3,4,17,27,22,10,9,11,7,8,25,24,23,18,15
1670 REM Set up the otput lines
1680 FOR J%=0 TO 15
1690 SYS"GPIO_WriteMode",Port%(J%),1
1700 NEXT
1710
1720 R1%=15:G1%=18:B1%=23:S1%=2
1730 R2%=24:G2%=25:B2%=8:S2%=3
1740 R3%=7:G3%=11:B3%=9:S3%=4
1750 R4%=10:G4%=22:B4%=27:S4%=17
1760 ENDPROC
|