Hi Mike-K8LH
I'm going to use your upper part code (which is very compact), but not the bottom macro which takes lots of program memory. I need more programming space to code my patterns. Here is the one I'm going to use.
I'm going to use your upper part code (which is very compact), but not the bottom macro which takes lots of program memory. I need more programming space to code my patterns. Here is the one I'm going to use.
Code:
isrproc
pushisr ; save context
movlw .29
movwf Col_Counter
incf row,F ; bump 'row' counter
bcf row,4 ; 0..15, inclusive
movf row,W ;
addwf PCL,F ;
goto row00 ;
goto row01 ;
goto row02 ;
goto row03 ;
goto row04 ;
goto row05 ;
goto row06 ;
goto row07 ;
goto row08 ;
goto row09 ;
goto row10 ;
goto row11 ;
goto row12 ;
goto row13 ;
goto row14 ;
goto row15 ;
row00 movlw 68h ; 1
movwf FSR ; 1
movlw .2 ; 1
row00_Loop
bcf SR_Data ; 1
btfss INDF,7 ; 1
bsf SR_Data ; 1
bsf SR_Clock ; 1
bcf SR_Clock ; 1
subwf FSR,F ; 1
decfsz Col_Counter,F ; 1
goto row00_Loop ; 2
goto Make_Latch
row01 movlw 68h ; 1
movwf FSR ; 1
movlw .2 ; 1
row01_Loop
bcf SR_Data ; 1
btfss INDF,6 ; 1
bsf SR_Data ; 1
bsf SR_Clock ; 1
bcf SR_Clock ; 1
subwf FSR,F ; 1
decfsz Col_Counter,F ; 1
goto row01_Loop ; 2
goto Make_Latch
row02 ---
row03 ---
row04 ---
row05 ---
row06 ---
row07 ---
row08 ---
row09 ---
row10 ---
row11 ---
row12 ---
row13 ---
row14 ---
row15 ---
Make_Latch bsf SR_Latch
nop
bsf SR_Latch
Exit_ISR pullisr ; restore context
retfie