📄 id_chang.asm
字号:
;-----------------------------------------
; update_id:
; update the pad id according to D_A_mode;
; D_A_mode may be changed by 44 or switch.
; have to check mode_ch by switch first.
;-----------------------------------------
update_id:
btfss f_44_chmode ; change by 44?
goto end_update_id
; goto id_not_44_ch
;
; movlw digital_id ; 41
; btfsc D_A_mode
; movlw analog_id ; 73
;
; xorwf pad_id,W
; andlw 0x0f
; btfsc STATUS,Z
; goto end_update_id
movlw digital_id ; 41
btfsc D_A_mode
movlw analog_id ; 73
movwf pad_id
id_init_parameter:
bcf PCLATH,3
call init_all_vars
bsf PCLATH,3
call set_pb
btfsc f_mapbad
call def_pb
call set_auto_mask
end_update_id:
bcf STATUS,RP0
bcf f_44_chmode ; clr 44 set flag
return
;-------------------------------------------
; mode_change:
; mode change by push button
; if using slide sw, don't call this routine
;-------------------------------------------
mode_change:
bcf STATUS,RP0
bcf s_motor ;Stop Small Motor
clrf pwmduty ;Stop Lager Motor
movlw d'4' ;TIME52MS ;SET 0.5MSEC KEY RELEASE DEBOUNCE
movwf dur_dbc
movwf tmr_dbc ;RESET DEBOUNCE TIMER
bcf f_keystb ;CLEAR KEY STABLE FLAG
mode_dbc:
nop
call readport
nop
call p_timer ;DEBOUCE MODE KEY FOR 0.5 SECOND
btfss f_keystb ;IF MODE RELEASES WITHIN THE DEBOUNCE TIME
goto mode_dbc ;THE ROUTINE WILL EXIT WITHOUT DOING
btfsc mode_bit ;ANYTHING
goto end_mode_change
bcf STATUS,RP0
btfsc f_44_lock ; locked by 44 ?
goto end_mode_change ; Yes
btfsc D_A_mode
goto mode_ch_to_41
bsf D_A_mode
movlw analog_id ; change to 73
goto mode_ch_set
mode_ch_to_41:
bcf D_A_mode
movlw digital_id ; change to 41
mode_ch_set:
movwf pad_id
btfsc f_nmode ; which protocol is operating
bsf mode_ch ; set mode change flag for 2.0
mode_release:
bcf PCLATH,3
call init_all_vars
bsf PCLATH,3
call set_pb
btfsc f_mapbad
call def_pb
nop
call set_auto_mask
bcf STATUS,RP0
bcf f_44_chmode ; clr 44 set flag
mode_lp2:
movlw 0x00 ;WAIT FOR MODE KEY OFF BEFORE EXIT
call waitkey
btfss mode_bit
goto mode_lp2
movlw DBC100MS ;SET DEBOUNCE TIME BACK TO 0.1 SECOND
movwf dur_dbc
movwf tmr_dbc ;RESET DEBOUNCE TIMER
end_mode_change:
bcf STATUS,RP0
bsf pwmctrl,7 ;Enable PWM
return
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -