SolidWorksMagi
Senior Member
Hi,
Here's the code ... if you can test it on your system and see if it works for you I'd like to know ... it's screwing up for me and I don't know why ... the 40X2 is connected to the AXE091 Development board
; 40X2-3-Color-LED-Tests.bas
#picaxe 40X2
; 3-Color LED1 PINs = B.7 red, B.6 green, B.5 blue
; 3-Color LED2 PINs = A.7 red, A.6 green, A.5 blue
; 3-Color LED1 PINs = D.7 red, D.6 green, D.5 blue
; 76543210
; RGB
dirsb = %11100000 ; make B.7 to B.5 outputs
dirsd = %11100000 ; make D.7 to D.5 outputs
dirsa = %11100000 ; make A.7 to A.5 outputs
; RGB+hserout
dirsc = %11110000 ; make C.7 to C.4 outputs
hsersetup B9600_8, %00000 ; 9600 baud, non-inverted polarity
symbol i = b0
; BEGIN Main Body * * * * * * * * * * * * * * * * * * * * * * *
gosub LEDsOFF
pause 1000
do
;gosub RGB1
;gosub RGB2
;gosub RGB3
gosub RGBA
gosub LEDsOFF
pause 1000
loop
; END Main Body * * * * * * * * * * * * * * * * * * * * * * **
end
; BEGIN LED subroutines * * * * * * * * * * * * * * *
RGB1:
gosub redLED1
pause 500
gosub greenLED1
pause 500
gosub blueLED1
pause 500
return
RGB2:
gosub redLED2
pause 500
gosub greenLED2
pause 500
gosub blueLED2
pause 500
return
RGB3:
gosub redLED3
pause 500
gosub greenLED3
pause 500
gosub blueLED3
pause 500
return
RGBA:
gosub redLED1
gosub greenLED2
gosub blueLED3
pause 500
gosub greenLED1
gosub blueLED2
gosub redLED3
pause 500
gosub blueLED1
gosub redLED2
gosub greenLED3
pause 500
return
LEDsOFF:
; 76543210
let pinsb = %11111100 ; OFF
let pinsd = %11100000 ; OFF
let pinsa = %11100000 ; OFF
return
redLED1:
; redLED1 RGB
let pinsb = %01111100 ; RED LED1
return
greenLED1:
; greenLED1 RGB
let pinsb = %10111100 ; GREEN LED1
return
blueLED1:
; blueLED1 RGB
let pinsb = %11011100 ; BLUE LED1
return
redLED2:
; redLED2 RGB
let pinsa = %01111111 ; RED LED2
return
greenLED2:
; greenLED2 RGB
let pinsa = %10111111 ; GREEN LED2
return
blueLED2:
; blueLED2 RGB
let pinsa = %11011111 ; BLUE LED2
return
redLED3:
; redLED3 RGB
let pinsd = %01111100 ; RED LED3
return
greenLED3:
; greenLED3 RGB
let pinsd = %10111100 ; GREEN LED3
return
blueLED3:
; blueLED3 RGB
let pinsd = %11011100 ; BLUE LED3
return
end
Here's the code ... if you can test it on your system and see if it works for you I'd like to know ... it's screwing up for me and I don't know why ... the 40X2 is connected to the AXE091 Development board
; 40X2-3-Color-LED-Tests.bas
#picaxe 40X2
; 3-Color LED1 PINs = B.7 red, B.6 green, B.5 blue
; 3-Color LED2 PINs = A.7 red, A.6 green, A.5 blue
; 3-Color LED1 PINs = D.7 red, D.6 green, D.5 blue
; 76543210
; RGB
dirsb = %11100000 ; make B.7 to B.5 outputs
dirsd = %11100000 ; make D.7 to D.5 outputs
dirsa = %11100000 ; make A.7 to A.5 outputs
; RGB+hserout
dirsc = %11110000 ; make C.7 to C.4 outputs
hsersetup B9600_8, %00000 ; 9600 baud, non-inverted polarity
symbol i = b0
; BEGIN Main Body * * * * * * * * * * * * * * * * * * * * * * *
gosub LEDsOFF
pause 1000
do
;gosub RGB1
;gosub RGB2
;gosub RGB3
gosub RGBA
gosub LEDsOFF
pause 1000
loop
; END Main Body * * * * * * * * * * * * * * * * * * * * * * **
end
; BEGIN LED subroutines * * * * * * * * * * * * * * *
RGB1:
gosub redLED1
pause 500
gosub greenLED1
pause 500
gosub blueLED1
pause 500
return
RGB2:
gosub redLED2
pause 500
gosub greenLED2
pause 500
gosub blueLED2
pause 500
return
RGB3:
gosub redLED3
pause 500
gosub greenLED3
pause 500
gosub blueLED3
pause 500
return
RGBA:
gosub redLED1
gosub greenLED2
gosub blueLED3
pause 500
gosub greenLED1
gosub blueLED2
gosub redLED3
pause 500
gosub blueLED1
gosub redLED2
gosub greenLED3
pause 500
return
LEDsOFF:
; 76543210
let pinsb = %11111100 ; OFF
let pinsd = %11100000 ; OFF
let pinsa = %11100000 ; OFF
return
redLED1:
; redLED1 RGB
let pinsb = %01111100 ; RED LED1
return
greenLED1:
; greenLED1 RGB
let pinsb = %10111100 ; GREEN LED1
return
blueLED1:
; blueLED1 RGB
let pinsb = %11011100 ; BLUE LED1
return
redLED2:
; redLED2 RGB
let pinsa = %01111111 ; RED LED2
return
greenLED2:
; greenLED2 RGB
let pinsa = %10111111 ; GREEN LED2
return
blueLED2:
; blueLED2 RGB
let pinsa = %11011111 ; BLUE LED2
return
redLED3:
; redLED3 RGB
let pinsd = %01111100 ; RED LED3
return
greenLED3:
; greenLED3 RGB
let pinsd = %10111100 ; GREEN LED3
return
blueLED3:
; blueLED3 RGB
let pinsd = %11011100 ; BLUE LED3
return
end
Last edited: