📄 vr_41.asm
字号:
;-------------------------------------
; vr_41:
; map the vr into direction in 41 mode
;-------------------------------------
vr_41:
btfsc D_A_mode ; if analog -> exit
goto end_vr_41
movf xaxis_val,W
movwf vr_value
call vr_41_lf_rt
movf yaxis_val,W
movwf vr_value
call vr_41_up_dn
movf zaxis_val,W
movwf vr_value
call vr_41_lf_rt
movf raxis_val,W
movwf vr_value
call vr_41_up_dn
end_vr_41:
return
;-----------------------------------------
; vr_41_lf_rt:
; check for 41 vr's left & right direction
;-----------------------------------------
vr_41_lf_rt:
btfss t_lt_bit ; already pressed ?
goto vr_41_chk_rt
movlw DEAD_OUT
subwf vr_value,W
btfss STATUS,C
bcf t_lt_bit
movlw DEAD_IN
subwf vr_value,W
btfsc STATUS,C
bsf t_lt_bit
vr_41_chk_rt:
btfss t_rt_bit ; already pressed ?
goto end_vr_41_lf_rt
movlw d'255'-DEAD_OUT
subwf vr_value,W
btfsc STATUS,C
bcf t_rt_bit
movlw d'255'-DEAD_IN
subwf vr_value,W
btfss STATUS,C
bsf t_rt_bit
end_vr_41_lf_rt:
return
;-----------------------------------------
; vr_41_up_dn:
; check for 41 vr's up & down direction
;-----------------------------------------
vr_41_up_dn:
btfss t_up_bit ; already pressed ?
goto vr_41_chk_dn
movlw DEAD_OUT
subwf vr_value,W
btfss STATUS,C
bcf t_up_bit
movlw DEAD_IN
subwf vr_value,W
btfsc STATUS,C
bsf t_up_bit
vr_41_chk_dn:
btfss t_dn_bit ; already pressed ?
goto end_vr_41_up_dn
movlw d'255'-DEAD_OUT
subwf vr_value,W
btfsc STATUS,C
bcf t_dn_bit
movlw d'255'-DEAD_IN
subwf vr_value,W
btfss STATUS,C
bsf t_dn_bit
end_vr_41_up_dn:
return
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -