In my LED moving sign I have 8 rows & 40 Columns.
At each interrupt I update 1 row at a time.The animation patterns are in the main loop. The code works.
The only doubt is my subroutine processing times are larger than the interrupt rate (1mS) so it may generate interrupt while I'm processing my subroutine process.
How to overcome this?
Thanks
At each interrupt I update 1 row at a time.The animation patterns are in the main loop. The code works.
The only doubt is my subroutine processing times are larger than the interrupt rate (1mS) so it may generate interrupt while I'm processing my subroutine process.
How to overcome this?
Thanks
Code:
Isr_Rate = 1mS
Do_Mux ---
Do_Row_1 ---
goto Mux_Exit
Do_Row_2 ---
Do_Row_3 ---
Do_Row_4 ---
Do_Row_5 ---
Do_Row_6 ---
Do_Row_7 ---
Do_Row_8 ---
bsf,Flag_Register,End_Frame ;8mS Time
Load_Disp_Buffer
copy working regs to display registers
Mux_Exit
;===========================================================
Main_Routine
Do_Pat_1 call Subroutine_1 ;250uS time
call Subroutine_2 ;100uS Time
call Subroutine_3 ;560uS Time
call Subroutine_4 ;380uS Time
call Delay_40mS
;=======================================================
Delay_40mS movlw .5
movwf Count ;8mS X 5 = 40mS
Delay_Loop bcf Flag_Register,End_Frame
btfss Flag_Register,End_Frame
goto $-1
bcf Flag_Register,End_Frame
decfsz Count,F
goto Delay_Loop
return
;========================================================
Subroutine_1 --
Return
Subroutine_2 --
Return
Subroutine_3 --
Return
Subroutine_4 --
Return
Last edited: