list p=16F628A
#include <p16F628A.inc>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT & _LVP_OFF
errorlevel -302 ; supress banksel warning messages during assembly
errorlevel -311 ; supress HIGH operator warning messages during assembly
errorlevel -305
cblock 0x20
copyPORTA
copyPORTB
FrameCount
LoopCount
Color1
Color2
Color3
Col1
Col2
Col3
endc
#define bank0 bcf STATUS,RP0
#define bank1 bsf STATUS,RP0
RESET_VECTOR org 0x000
;--------------------------------------------------------------
Rainbow macro Col1,Col2,Col3
movlw Col1
movwf Color1
movlw Col2
movwf Color2
movlw Col3
movwf Color3
call MainFrames
endm
;--------------------------------------------------------------
START
movlw b'00000111' ;Set all ports as outputs
movwf CMCON ;Disable comparators
bank1
clrf TRISA
clrf TRISB
bank0
;----------------------------------------------------------------------
Sequence
call MegaColor
goto Sequence
;----------------------------------------------------------------------
MegaColor
Rainbow b'00010000',b'01000000',b'10000000'
Rainbow b'00010000',b'01010000',b'01000000'
Rainbow b'00010000',b'00010000',b'01010000'
Rainbow b'00010000',b'01000000',b'01000000'
Rainbow b'00010000',b'10000000',b'00010000'
Rainbow b'00010000',b'00010000',b'10000000'
Rainbow b'00010000',b'10010000',b'10000000'
Rainbow b'00010000',b'10010000',b'10010000'
Rainbow b'00010000',b'00010000',b'10010000'
Rainbow b'01010000',b'01010000',b'00010000'
Rainbow b'01010000',b'01010000',b'01000000'
Rainbow b'01010000',b'01010000',b'11000000'
Rainbow b'01010000',b'01010000',b'10000000'
Rainbow b'01010000',b'01010000',b'10010000'
Rainbow b'01010000',b'10010000',b'11000000'
Rainbow b'01010000',b'01000000',b'11000000'
Rainbow b'01010000',b'10010000',b'10010000'
Rainbow b'01010000',b'11010000',b'00010000'
Rainbow b'01010000',b'11010000',b'01000000'
Rainbow b'01010000',b'11010000',b'10000000'
Rainbow b'01000000',b'11010000',b'10000000'
Rainbow b'01000000',b'10000000',b'10000000'
Rainbow b'01000000',b'01000000',b'10000000'
Rainbow b'01000000',b'11000000',b'10000000'
Rainbow b'01000000',b'11000000',b'11000000'
Rainbow b'01000000',b'11010000',b'11000000'
Rainbow b'01000000',b'10010000',b'10010000'
Rainbow b'01000000',b'01000000',b'01010000'
Rainbow b'01000000',b'01000000',b'11000000'
Rainbow b'01000000',b'01000000',b'10010000'
Rainbow b'10000000',b'10010000',b'00010000'
Rainbow b'10000000',b'10010000',b'10010000'
Rainbow b'10000000',b'11010000',b'00010000'
Rainbow b'10000000',b'11000000',b'11000000'
Rainbow b'10000000',b'11010000',b'10010000'
Rainbow b'10010000',b'10010000',b'11010000'
Rainbow b'10010000',b'01010000',b'11010000'
Rainbow b'10010000',b'10010000',b'01000000'
Rainbow b'10010000',b'10010000',b'11000000'
Rainbow b'10010000',b'11010000',b'11000000'
Rainbow b'00010000',b'00000000',b'00000000'
Rainbow b'01010000',b'00000000',b'00000000'
Rainbow b'01000000',b'00000000',b'00000000'
Rainbow b'11000000',b'00000000',b'00000000'
Rainbow b'10000000',b'00000000',b'00000000'
Rainbow b'10010000',b'00000000',b'00000000'
;
return
;----------------------------------
MainFrames
movlw d'255'
movwf FrameCount
FC1
call Frame12
call Frame12
decfsz FrameCount
goto FC1
;
movlw d'255'
movwf FrameCount
FC2
call Frame12
call Frame11
decfsz FrameCount
goto FC2
;
movlw d'255'
movwf FrameCount
FC3
call Frame11
call Frame11
decfsz FrameCount
goto FC3
;
movlw d'255'
movwf FrameCount
FC4
call Frame11
call Frame10
decfsz FrameCount
goto FC4
;
movlw d'255'
movwf FrameCount
FC5
call Frame10
call Frame10
decfsz FrameCount
goto FC5
;
movlw d'255'
movwf FrameCount
FC6
call Frame10
call Frame9
decfsz FrameCount
goto FC6
;
movlw d'255'
movwf FrameCount
FC7
call Frame9
call Frame9
decfsz FrameCount
goto FC7
;
movlw d'255'
movwf FrameCount
FC8
call Frame9
call Frame8
decfsz FrameCount
goto FC8
;
movlw d'255'
movwf FrameCount
FC9
call Frame8
call Frame8
decfsz FrameCount
goto FC9
;
movlw d'255'
movwf FrameCount
FC10
call Frame8
call Frame7
decfsz FrameCount
goto FC10
;
movlw d'255'
movwf FrameCount
FC11
call Frame7
call Frame7
decfsz FrameCount
goto FC11
;
movlw d'255'
movwf FrameCount
FC12
call Frame7
call Frame6
decfsz FrameCount
goto FC12
;
movlw d'255'
movwf FrameCount
FC13
call Frame6
call Frame6
decfsz FrameCount
goto FC13
;
movlw d'255'
movwf FrameCount
FC14
call Frame6
call Frame5
decfsz FrameCount
goto FC14
;
movlw d'255'
movwf FrameCount
FC15
call Frame5
call Frame5
decfsz FrameCount
goto FC15
;
movlw d'255'
movwf FrameCount
FC16
call Frame5
call Frame4
decfsz FrameCount
goto FC16
;
movlw d'255'
movwf FrameCount
FC17
call Frame4
call Frame4
decfsz FrameCount
goto FC17
;
movlw d'255'
movwf FrameCount
FC18
call Frame4
call Frame3
decfsz FrameCount
goto FC18
;
movlw d'255'
movwf FrameCount
FC19
call Frame3
call Frame3
decfsz FrameCount
goto FC19
;
movlw d'255'
movwf FrameCount
FC20
call Frame3
call Frame2
decfsz FrameCount
goto FC20
;
movlw d'255'
movwf FrameCount
FC21
call Frame2
call Frame2
decfsz FrameCount
goto FC21
;
movlw d'255'
movwf FrameCount
FC22
call Frame2
call Frame1
decfsz FrameCount
goto FC22
;
movlw d'255'
movwf FrameCount
FC23
call Frame1
call Frame1
decfsz FrameCount
goto FC23
;
movlw d'255'
movwf FrameCount
FC24
call Frame1
call Frame12
decfsz FrameCount
goto FC24
;
return
;----------------------------------
Frame1
call C1
call Sec1
call C2
call Sec2
call C3
call Sec3
return
;---------------------------------------------
Frame2
call C1
call Sec4
call C2
call Sec5
call C3
call Sec6
return
;---------------------------------------------
Frame3
call C1
call Sec7
call C2
call Sec8
call C3
call Sec9
return
;---------------------------------------------
Frame4
call C1
call Sec10
call C2
call Sec11
call C3
call Sec12
return
;---------------------------------------------
Frame5
call C3
call Sec1
call C1
call Sec2
call C2
call Sec3
return
;---------------------------------------------
Frame6
call C3
call Sec4
call C1
call Sec5
call C2
call Sec6
return
;---------------------------------------------
Frame7
call C3
call Sec7
call C1
call Sec8
call C2
call Sec9
return
;---------------------------------------------
Frame8
call C3
call Sec10
call C1
call Sec11
call C2
call Sec12
return
;---------------------------------------------
Frame9
call C2
call Sec1
call C3
call Sec2
call C1
call Sec3
return
;---------------------------------------------
Frame10
call C2
call Sec4
call C3
call Sec5
call C1
call Sec6
return
;---------------------------------------------
Frame11
call C2
call Sec7
call C3
call Sec8
call C1
call Sec9
return
;---------------------------------------------
Frame12
call C2
call Sec10
call C3
call Sec11
call C1
call Sec12
return
;---------------------------------------------
Sec1
movlw b'00001111'
movwf copyPORTB
movlw b'00001110'
call Output
movlw b'00000111'
movwf copyPORTB
movlw b'00001100'
call Output
movlw b'00000011'
movwf copyPORTB
movlw b'00001000'
call Output
return
;---------------------------------------------
Sec2
movlw b'11111110'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'01111100'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00111000'
movwf copyPORTB
movlw b'00000000'
call Output
return
;---------------------------------------------
Sec3
movlw b'11100000'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'11000000'
movwf copyPORTB
movlw b'00000111'
call Output
movlw b'10000000'
movwf copyPORTB
movlw b'00000011'
call Output
return
;---------------------------------------------
Sec4
movlw b'00011111'
movwf copyPORTB
movlw b'00001100'
call Output
movlw b'00001111'
movwf copyPORTB
movlw b'00001000'
call Output
movlw b'00000111'
movwf copyPORTB
movlw b'00000000'
call Output
return
;---------------------------------------------
Sec5
movlw b'11111100'
movwf copyPORTB
movlw b'00000001'
call Output
movlw b'11111000'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'01110000'
movwf copyPORTB
movlw b'00000000'
call Output
return
;---------------------------------------------
Sec6
movlw b'11000001'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'10000000'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00000111'
call Output
return
;---------------------------------------------
Sec7
movlw b'00111111'
movwf copyPORTB
movlw b'00001000'
call Output
movlw b'00011111'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00001110'
movwf copyPORTB
movlw b'00000000'
call Output
return
;---------------------------------------------
Sec8
movlw b'11111000'
movwf copyPORTB
movlw b'00000011'
call Output
movlw b'11110000'
movwf copyPORTB
movlw b'00000001'
call Output
movlw b'11100000'
movwf copyPORTB
movlw b'00000000'
call Output
return
;---------------------------------------------
Sec9
movlw b'10000011'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'00000001'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00001110'
call Output
return
;---------------------------------------------
Sec10
movlw b'01111111'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00111110'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00011100'
movwf copyPORTB
movlw b'00000000'
call Output
return
;---------------------------------------------
Sec11
movlw b'11110000'
movwf copyPORTB
movlw b'00000111'
call Output
movlw b'11100000'
movwf copyPORTB
movlw b'00000011'
call Output
movlw b'11000000'
movwf copyPORTB
movlw b'00000001'
call Output
return
;---------------------------------------------
Sec12
movlw b'00000111'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'00000011'
movwf copyPORTB
movlw b'00001110'
call Output
movlw b'00000001'
movwf copyPORTB
movlw b'00001100'
call Output
return
;---------------------------------------------
C1 movfw Color1
movwf copyPORTA
return
;---------------------------------------------
C2 movfw Color2
movwf copyPORTA
return
;---------------------------------------------
C3 movfw Color3
movwf copyPORTA
return
;---------------------------------------------
Output addwf copyPORTA,0
movwf PORTA
movfw copyPORTB
movwf PORTB
return
;---------------------------------------------
end
list p=16F628A
#include <p16F628A.inc>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT & _LVP_OFF
errorlevel -302 ; supress banksel warning messages during assembly
errorlevel -311 ; supress HIGH operator warning messages during assembly
errorlevel -305
cblock 0x20
copyPORTA ;Declare variables used in the program
copyPORTB
FrameCount
LoopCount
Color1
Color2
Color3
Col1
Col2
Col3
Speed
endc
#define bank0 bcf STATUS,RP0
#define bank1 bsf STATUS,RP0
RESET_VECTOR org 0x000
;--------------------------------------------------------------
Rainbow macro Col1,Col2,Col3
movlw Col1
movwf Color1
movlw Col2
movwf Color2
movlw Col3
movwf Color3
call MainFrames
endm
;--------------------------------------------------------------
START
movlw b'00000111' ;Set all ports as outputs
movwf CMCON ;Disable comparators
bank1
clrf TRISA
clrf TRISB
bank0
clrf copyPORTA
;----------------------------------------------------------------------
movlw d'35'
movwf Speed
Rainbow b'00000000',b'00000000',b'00000000'
Rainbow b'00000000',b'00000000',b'00010000'
Rainbow b'00000000',b'00010000',b'01010000'
Sequence
Rainbow b'00010000',b'01010000',b'01000000'
Rainbow b'01010000',b'01000000',b'11000000'
Rainbow b'01000000',b'11000000',b'10000000'
Rainbow b'11000000',b'10000000',b'10010000'
Rainbow b'10000000',b'10010000',b'00010000'
Rainbow b'10010000',b'00010000',b'01010000'
goto Sequence
;----------------------------------------------------------------------
MainFrames
movfw Speed
movwf LoopCount
LC1
call Frame1
decfsz LoopCount,F
goto LC1
;-----------------------------------------------
movfw Speed
movwf LoopCount
LC2
call Frame2
decfsz LoopCount,F
goto LC2
;-----------------------------------------------
movfw Speed
movwf LoopCount
LC3
call Frame3
decfsz LoopCount,F
goto LC3
;-----------------------------------------------
movfw Speed
movwf LoopCount
LC4
call Frame4
decfsz LoopCount,F
goto LC4
;-----------------------------------------------
movfw Speed
movwf LoopCount
LC5
call Frame5
decfsz LoopCount,F
goto LC5
;-----------------------------------------------
movfw Speed
movwf LoopCount
LC6
call Frame6
decfsz LoopCount,F
goto LC6
;-----------------------------------------------
movfw Speed
movwf LoopCount
LC7
call Frame7
decfsz LoopCount,F
goto LC7
;-----------------------------------------------
movfw Speed
movwf LoopCount
LC8
call Frame8
decfsz LoopCount,F
goto LC8
;
return
;-----------------------------------------------
Frame1
movfw Speed
movwf FrameCount
FC1
call C1
call Sec1
call C2
call Sec2
call C3
call Sec3
decfsz FrameCount,F
goto FC1
return
;---------------------------------------------
Frame2
movfw Speed
movwf FrameCount
FC2
call C1
call Sec4
call C2
call Sec5
call C3
call Sec6
decfsz FrameCount,F
goto FC2
return
;---------------------------------------------
Frame3
movfw Speed
movwf FrameCount
FC3
call C1
call Sec7
call C2
call Sec8
call C3
call Sec9
decfsz FrameCount,F
goto FC3
return
;---------------------------------------------
Frame4
movfw Speed
movwf FrameCount
FC4
call C1
call Sec10
call C2
call Sec11
call C3
call Sec12
decfsz FrameCount,F
goto FC4
return
;---------------------------------------------
Frame5
movfw Speed
movwf FrameCount
FC5
call C1
call Sec13
call C2
call Sec14
call C3
call Sec15
decfsz FrameCount,F
goto FC5
return
;---------------------------------------------
Frame6
movfw Speed
movwf FrameCount
FC6
call C1
call Sec16
call C2
call Sec17
call C3
call Sec18
decfsz FrameCount,F
goto FC6
return
;---------------------------------------------
Frame7
movfw Speed
movwf FrameCount
FC7
call C1
call Sec19
call C2
call Sec20
call C3
call Sec21
decfsz FrameCount,F
goto FC7
return
;---------------------------------------------
Frame8
movfw Speed
movwf FrameCount
FC8
call C1
call Sec22
call C2
call Sec23
call C3
call Sec24
decfsz FrameCount,F
goto FC8
return
;---------------------------------------------
Sec1
movlw b'11110000'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'11100000'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'11000000'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'10000000'
movwf copyPORTB
movlw b'00001111'
call Output
return
;---------------------------------------------
Sec2
movlw b'11111111'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'01111111'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00111111'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00011111'
movwf copyPORTB
movlw b'00000000'
call Output
return
;---------------------------------------------
Sec3
movlw b'00000000'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00000000'
call Output
return
;---------------------------------------------
Sec4
movlw b'11100000'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'11000000'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'10000000'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00001111'
call Output
return
;---------------------------------------------
Sec5
movlw b'11111111'
movwf copyPORTB
movlw b'00000001'
call Output
movlw b'11111111'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'01111111'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00111111'
movwf copyPORTB
movlw b'00000000'
call Output
return
;---------------------------------------------
Sec6
movlw b'00000001'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00000000'
call Output
return
;---------------------------------------------
Sec7
movlw b'11000000'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'10000000'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00001110'
call Output
return
;---------------------------------------------
Sec8
movlw b'11111111'
movwf copyPORTB
movlw b'00000011'
call Output
movlw b'11111111'
movwf copyPORTB
movlw b'00000001'
call Output
movlw b'11111111'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'01111110'
movwf copyPORTB
movlw b'00000000'
call Output
return
;---------------------------------------------
Sec9
movlw b'00000011'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00000001'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00000000'
call Output
return
;---------------------------------------------
Sec10
movlw b'10000000'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00001110'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00001100'
call Output
return
;---------------------------------------------
Sec11
movlw b'11111111'
movwf copyPORTB
movlw b'00000111'
call Output
movlw b'11111111'
movwf copyPORTB
movlw b'00000011'
call Output
movlw b'11111110'
movwf copyPORTB
movlw b'00000001'
call Output
movlw b'11111100'
movwf copyPORTB
movlw b'00000000'
call Output
return
;---------------------------------------------
Sec12
movlw b'00000111'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00000011'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00000001'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00000000'
call Output
return
;---------------------------------------------
Sec13
movlw b'00000000'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00001110'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00001100'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00001000'
call Output
return
;---------------------------------------------
Sec14
movlw b'11111111'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'11111110'
movwf copyPORTB
movlw b'00000111'
call Output
movlw b'11111100'
movwf copyPORTB
movlw b'00000011'
call Output
movlw b'11111000'
movwf copyPORTB
movlw b'00000001'
call Output
return
;---------------------------------------------
Sec15
movlw b'00001111'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00000111'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00000011'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00000001'
movwf copyPORTB
movlw b'00000000'
call Output
return
;---------------------------------------------
Sec16
movlw b'00000000'
movwf copyPORTB
movlw b'00001110'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00001100'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00001000'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00000000'
call Output
return
;---------------------------------------------
Sec17
movlw b'11111110'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'11111100'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'11111000'
movwf copyPORTB
movlw b'00000111'
call Output
movlw b'11110000'
movwf copyPORTB
movlw b'00000011'
call Output
return
;---------------------------------------------
Sec18
movlw b'00011111'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00001111'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00000111'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00000011'
movwf copyPORTB
movlw b'00000000'
call Output
return
;---------------------------------------------
Sec19
movlw b'00000000'
movwf copyPORTB
movlw b'00001100'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00001000'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00000000'
call Output
return
;---------------------------------------------
Sec20
movlw b'11111100'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'11111000'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'11110000'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'11100000'
movwf copyPORTB
movlw b'00000111'
call Output
return
;---------------------------------------------
Sec21
movlw b'00111111'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00011111'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00001111'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00000111'
movwf copyPORTB
movlw b'00000000'
call Output
return
;---------------------------------------------
Sec22
movlw b'00000000'
movwf copyPORTB
movlw b'00001000'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00000000'
movwf copyPORTB
movlw b'00000000'
call Output
return
;---------------------------------------------
Sec23
movlw b'11111000'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'11110000'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'11100000'
movwf copyPORTB
movlw b'00001111'
call Output
movlw b'11000000'
movwf copyPORTB
movlw b'00001111'
call Output
return
;---------------------------------------------
Sec24
movlw b'01111111'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00111111'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00011111'
movwf copyPORTB
movlw b'00000000'
call Output
movlw b'00001111'
movwf copyPORTB
movlw b'00000000'
call Output
return
;---------------------------------------------
C1 movfw Color1
movwf copyPORTA
return
;---------------------------------------------
C2 movfw Color2
movwf copyPORTA
return
;---------------------------------------------
C3 movfw Color3
movwf copyPORTA
return
;---------------------------------------------
Output addwf copyPORTA,0
movwf PORTA
movfw copyPORTB
movwf PORTB
return
;---------------------------------------------
end
Thanks North. I will work on that when I have some time.To get a stable time base, you need a timer interrupt. Set your LEDs first thing after the interrupt is called. If you want to switch at 60Hz x 3 channels x 32 (5 bit) resolution = about 6kHz - one interrupt every 170 us - not very challenging speed. Then you can run any stuff between iterrupts without distubing the time base.
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?