📄 timer.asm
字号:
;==========================================================================
; File Name : timer.asm
;
; Rev: Date: Author: Reason:
;****************************************************************************
;FUNCTION: THIS SUBROUTINE IS TO TOGGLE THE AUTO FIRE FUNCTION FLAG TO
; ENABLE THE AUTO FIRE TO BE FUNCTION DURING FIRING. WHEN THE TIMER
; IS UP THE FLAG F_FIRE WILL BE TOGGLED AND THE TIMER RELOADED.
;ROUTINE NAME: P_FIRE
;INPUT: TMR_AUTO
;OUTPUT: WHEN TMR_AUTO = 0, F_FIRE TOGGLED, TMR_AUTO = 5. IF THIS ROUTINE
; IS UPDATED EVERY 1/100 SECOND, THE RESULTING RATE = 10 HZ.
; WHEN TMR_AUTO NOT = 0, F_FIRE UNCHANGED
;****************************************************************************
;
p_fire:
btfsc f_set_force
goto pfire1
btfsc f_autled1 ;PROCESS ONLY IF AUTO IS SET
goto pfire1
bsf f_fire ;F_FIRE ==> NOW FIRING
return
pfire1:
decfsz tmr_auto,F ;UPDATE AUTO COUNTER
return ;EXIT IF NOT TIME'S UP
btfss f_fire ;TOGGLE F_FIRE FLAG
goto pf_setf
bcf f_fire
goto pfend
pf_setf:
bsf f_fire
pfend:
movlw DUR_AUTO ;RELOAD COUNTER
movwf tmr_auto
return
;------------------------------------------------------------
; Name : p_timer
; Parm :
; Retn :
; Desc :
;------------------------------------------------------------
p_timer:
bcf STATUS,RP0
call p_show_led
btfss tmrcnt,3
return
bcf tmrctrl,tmr_en ;Stop timer
bsf tmrctrl,tmr_en ;Start again
movf tmr_step,F
btfss STATUS,Z
decf tmr_step,F
; movf tmr_beep,F
; btfss STATUS,Z
; decf tmr_beep,F
call p_dbc
call p_pgmled
call p_autled
call p_fire
bsf STATUS,RP0
incf m_reset,F
btfss STATUS,Z
goto p_time_not_reset
bcf STATUS,RP0
bsf f_time_reset
p_time_not_reset:
bcf STATUS,RP0
end_p_timer:
bsf tmrctrl,tmr_en ;Start again
return
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -