'Testing 14" clock display
#picaxe 20x2
#no_table
#no_data
'#Terminal 76800
setfreq m64
Let DIRSB = %10000000 : Let DIRSC = %00000010
; Set how many LED modules in the strip
symbol HOW_MANY_LEDS = 119 ;display takes 119
; Set the brightness of the LED
symbol Brts_Led = 230 ; 0 to 255 brightness (I have a good power supply and extra power leads to each digit)
; Initialise the HSPI interface
#macro init()
hspisetup spimode00, spimedium
#endmacro
; Send a four byte packet out via HSPI
#macro sendPacket( n1, n2, n3, n4 )
hspiout( n1, n2, n3, n4 )
#endmacro
; Send the start of data header
#macro head()
sendPacket( $00 ,$00 ,$00 ,$00 )
#endmacro
; Send the end of data tail
#macro tail()
sendPacket( $00 ,$00 ,$00 ,$00 )'1-64
sendPacket( $00 ,$00 ,$00 ,$00 )'64-128
#endmacro
#Macro ShowDigit(wVar,digitNumber)
b0 = wVar DIG digitNumber
Gosub Do_ShowDigit
#EndMacro
#Macro N_x_SendRGB(n,r,g,b)
For b1 = 1 To n
SendRGB(r,g,b)
Next
#EndMacro
#Macro Led_Off(n)
N_x_SendRGB(n,0,0,0 )
#EndMacro
#Macro Led_Blue(n)
N_x_SendRGB(n,Brts_Led,0,0 )
#EndMacro
#Macro Led_Red(n)
N_x_SendRGB(n,0,0,Brts_Led )
#EndMacro
#Macro Led_Green(n)
N_x_SendRGB(n,0,Brts_Led,0 )
#EndMacro
init
w4 = 1234
Do '=====================main program=============================
Head
ShowDigit(w4,3)
ShowDigit(w4,2)
Gosub colon
ShowDigit(w4,1)
ShowDigit(w4,0)
Tail
w4 = w4 + 1
pause 8000
Loop
Do_Show_Digit:
On b0 GOTO Zero,One,Two,Three,Four,Five,Six,Seven,Eight,Nine
Zero:
Led_Off(5)
Led_Blue(30)
Return
One:
Led_Off(15)
Led_Blue(10)
Led_Off(10)
Return
Two:
Led_Blue(5)
Led_Off(5)
Led_Blue(10)
Led_Off(5)
Led_Blue(10)
RETURN
Three:
Led_Blue(5)
Led_Off(5)
Led_Blue(20)
Led_Off(5)
RETURN
Four:
Led_Blue(10)
Led_Off(5)
Led_Blue(10)
Led_Off(10)
RETURN
Five:
Led_Blue(15)
Led_Off(5)
Led_Blue(10)
Led_Off(5)
RETURN
Six:
Led_Blue(15)
Led_Off(5)
Led_Blue(15)
RETURN
Seven:
Led_Off(10)
Led_Blue(15)
Led_Off(10)
RETURN
Eight:
Led_Blue(35)
RETURN
Nine:
Led_Blue(30)
Led_Off(5)
RETURN
Colon:
Led_Blue(4)
RETURN