⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timer.asm

📁 VCP201_CODE is a FPGA source code.
💻 ASM
字号:
;==========================================================================
; File Name : timer.asm
;
; Rev:   Date:    Author:     Reason:
; 1.00   dd-mm-yy nnnnnnnnnnn rrrrrrrrrrrrrrrrrr
;==========================================================================


;****************************************************************************
;FUNCTION: THIS SUBROUTINE IS TO TOGGLE THE SLOW MOTION FUNCTION FLAG TO 
;          ENABLE THE START BIT TO BE TOGGLED DURING FIRING. WHEN THE TIMER
;          IS UP THE FLAG F_PAUSE WILL BE TOGGLED AND THE TIMER RELOADED.
;FILENAME: C:\PROJECTS\SV363\TIMER.ASM
;ROUTINE NAME: P_SLOW
;INPUT: TMR_SLOW
;OUTPUT: WHEN TMR_SLOW = 0, F_PAUSE TOGGLED, TMR_SLOW = 5.  IF THIS ROUTINE
;         IS UPDATED EVERY 1/100 SECOND, THE RESULTING RATE = 10 HZ.
;        WHEN TMR_SLOW NOT = 0, F_PAUSE UNCHANGED
;RAM AFFECTED:          
;SUBROUTINE CALL:
;****************************************************************************
;
;p_slow:
;        btfsc   f_sloled        ;PROCESS ONLY IF SLOW IS SET
;        goto    pslow1
;        bcf     f_pause         ;F_PAUSE ==> START BIT NOT ASSERTED
;        return
;pslow1:
;        decfsz  tmr_slow,F      ;UPDATE SLOW COUNTER
;        return                  ;EXIT IF NOT TIME'S UP
;        btfss   f_pause         ;TOGGLE F_PAUSE FLAG
;        goto    ps_setf
;        bcf     f_pause
;        goto    pslowend
;ps_setf:
;        bsf     f_pause
;pslowend:
;        movlw   DUR_SLOW        ;RELOAD COUNTER
;        movw    tmr_slow
;        return
;

;****************************************************************************
;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.
;FILENAME: C:\PROJECTS\SV363\TIMER.ASM
;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
;RAM AFFECTED:          
;SUBROUTINE CALL:
;****************************************************************************
;
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
        movw    tmr_auto
        return

;****************************************************************************
; p_mode_led:
; mode flash in set_force mode
;****************************************************************************
;
;p_mode:
;        btfss   f_set_force     ;PROCESS ONLY IF in set force mode
;	goto	end_p_mode
;
;pmode1:
;        decfsz  tmr_auto,F      ;UPDATE AUTO COUNTER
;        return                  ;EXIT IF NOT TIME'S UP
;        btfss   f_fire          ;TOGGLE F_FIRE FLAG
;        goto    pm_setf
;        bcf     f_fire
;        goto    end_p_mode
;pm_setf:
;        bsf     f_fire
;end_p_mode:
;        movlw   DUR_AUTO        ;RELOAD COUNTER
;        movw    tmr_auto
;        return
;------------------------------------------------------------
; Name : p_timer
; Parm : 
; Retn : 
; Desc : 
;------------------------------------------------------------
p_timer:

	call	p_show_led

	clrwdt

	btfss	timebase_intr
	return

	bcf	timebase_intr
	; 1/100th sec. processes



	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
;	btfss	f_set_force	; if set force, no autofire
	call	p_fire

	bsf	STATUS,RP0
        incf    m_reset,F
        movf	m_reset,W
        bcf	STATUS,RP0
        sublw	0xd0
        btfsc   STATUS,C
        goto    p_time_not_reset
	bsf	f_time_reset
	

        
p_time_not_reset:

end_p_timer:
	return

 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -