📄 com_trig.asm
字号:
ADRK #2 ; ARP = AR3. AR3 -> vb. AR2 -> FR1(neutral).
; AR4 -> debug_Bemf.
; AR5-> trig.
;--------------------------------------------------------------------------------
LACC *,1 ; Accumulator = 2 * vb.
; ARP = AR3. AR3 -> vb. AR2 -> FR1(neutral).
; AR4 -> debug_Bemf.
; AR5-> trig.
;--------------------------------------------------------------------------------
ADD *,AR2 ; Accumulator = 3 * vb
; neutral = 3 * neutral voltage (Vn)
; ARP = AR2, AR2 -> FR1(neutral). AR3 -> vb.
; AR4 -> debug_Bemf.
; AR5-> trig.
;--------------------------------------------------------------------------------
SUB *,AR4 ; Accumulator = (3 * vb) - neutral = 3*Vb - 3*Vn.
; ARP = AR4, AR4 -> debug_Bemf.
; AR2 -> FR1(neutral). AR3 -> vb. AR5-> trig.
;--------------------------------------------------------------------------------
SACL *+ ; debug_Bemf = (3 * vb) - neutral = 3*Vb - 3*Vn.
; ARP = AR4. AR4 -> noise_windowCntr.
; AR2 -> FR1(neutral). AR3 -> vb. AR5-> trig.
;--------------------------------------------------------------------------------
BCND __CMTN_clr_nw_s1,LT
; ARP = AR4. AR4 -> noise_windowCntr.
; AR2 -> FR1(neutral). AR3 -> vb. AR5-> trig.
;--------------------------------------------------------------------------------
CALL _Noise_Wind
; ARP = AR4. AR4 -> noise_windowCntr.
; AR2 -> FR1(neutral). AR3 -> vb. AR5-> trig.
;--------------------------------------------------------------------------------
B __CMTN_st_end
; ARP = AR4. AR4 -> noise_windowCntr.
; AR2 -> FR1(neutral). AR3 -> vb. AR5-> trig.
;--------------------------------------------------------------------------------
; ARP = AR4. AR4 -> noise_windowCntr.
; AR2 -> FR1(neutral). AR3 -> vb. AR5-> trig.
__CMTN_clr_nw_s1:
SPLK #CLEAR,*
; noise_windowCntr = 0.
; ARP = AR4. AR4 -> noise_windowCntr.
; AR2 -> FR1(neutral). AR3 -> vb. AR5-> trig.
;--------------------------------------------------------------------------------
B __CMTN_st_end
; ARP = AR4. AR4 -> noise_windowCntr.
; AR2 -> FR1(neutral). AR3 -> vb. AR5-> trig.
;================================================================================
; state 2 - ZC for phase A
; ARP = AR3. AR3 -> trig. AR2 -> neutral. AR4 -> debug_Bemf.
; AR5-> trig.
__CMTN_state_bnc:
ADRK #1 ; ARP = AR3. AR3 -> va. AR2 -> FR1(neutral).
; AR4 -> debug_Bemf. AR5-> trig.
;--------------------------------------------------------------------------------
LACC *,1 ; Accumulator = 2 * va.
; ARP = AR3. AR3 -> va. AR2 -> FR1(neutral).
; AR4 -> debug_Bemf. AR5-> trig.
;--------------------------------------------------------------------------------
ADD *,AR2 ; Accumulator = 3 * va.
; neutral = 3 * neutral voltage (Vn)
; ARP = AR2. AR2 -> FR1(neutral).AR3 -> va.
; AR4 -> debug_Bemf. AR5-> trig.
;--------------------------------------------------------------------------------
SUB *,AR4 ; ACC = (3 * va) - neutral = 3*Va - 3*Vn.
; ARP = AR4, AR4 -> debug_Bemf.
; AR2 -> FR1(neutral).AR3 -> va.
; AR5-> trig.
;--------------------------------------------------------------------------------
SACL *+ ; debug_Bemf = (3 * va) - neutral = 3*Va - 3*Vn.
; ARP = AR4. AR4 -> noise_windowCntr.
; AR2 -> FR1(neutral).AR3 -> va.
; AR5-> trig.
;--------------------------------------------------------------------------------
BCND __CMTN_clr_nw_s2,GT
; ARP = AR4. AR4 -> noise_windowCntr.
; AR2 -> FR1(neutral).AR3 -> va.
; AR5-> trig.
;--------------------------------------------------------------------------------
CALL _Noise_Wind
; ARP = AR4. AR4 -> noise_windowCntr.
; AR2 -> FR1(neutral).AR3 -> va.
; AR5-> trig.
;--------------------------------------------------------------------------------
B __CMTN_st_end
; ARP = AR4. AR4 -> noise_windowCntr.
; AR2 -> FR1(neutral).AR3 -> va.
; AR5-> trig.
;--------------------------------------------------------------------------------
; ARP = AR4. AR4 -> noise_windowCntr.
; AR2 -> FR1(neutral).AR3 -> va.
; AR5-> trig.
__CMTN_clr_nw_s2:
SPLK #CLEAR,*
; noise_windowCntr = 0;
; ARP = AR4. AR4 -> noise_windowCntr.
; AR2 -> FR1(neutral).AR3 -> va.
; AR5-> trig.
;--------------------------------------------------------------------------------
B __CMTN_st_end
; ARP = AR4. AR4 -> noise_windowCntr.
; AR2 -> FR1(neutral).AR3 -> va.
; AR5-> trig.
;================================================================================
; state 3 - ZC for phase C
; ARP = AR3. AR3 -> trig. AR4 -> debug_Bemf.
; AR2 -> FR1(neutral). AR5-> trig.
__CMTN_state_bna:
ADRK #3 ; ARP = AR3. AR3 -> vc. AR4 -> debug_Bemf.
; AR2 -> FR1(neutral). AR5-> trig.
;--------------------------------------------------------------------------------
LACC *,1 ; Accumulator = 2 * vc.
; ARP = AR3. AR3 -> vc. AR4 -> debug_Bemf.
; AR2 -> FR1(neutral). AR5-> trig.
;--------------------------------------------------------------------------------
ADD *,AR2 ; Accumulator = 3 * vc.
; neutral = 3 * neutral voltage (Vn)
; ARP = AR2. AR2 -> FR1(neutral).
; AR4 -> debug_Bemf. AR5-> trig.
; AR3 -> vc.
;--------------------------------------------------------------------------------
SUB *,AR4 ; Accumulator = 3 * vc - neutral = 3*Vc - 3*Vn.
; ARP = AR4, AR4 -> debug_Bemf.
; AR2 -> FR1(neutral). AR5-> trig.
; AR3 -> vc.
;--------------------------------------------------------------------------------
SACL *+ ; debug_Bemf = 3 * vc - neutral = 3*Vc - 3*Vn.
; ARP = AR4. AR4 -> noise_windowCntr.
; AR3 -> vc.
; AR2 -> FR1(neutral). AR5-> trig.
;--------------------------------------------------------------------------------
BCND __CMTN_clr_nw_s3,LT
; ARP = AR4. AR4 -> noise_windowCntr.
; AR3 -> vc.
; AR2 -> FR1(neutral). AR5-> trig.
;--------------------------------------------------------------------------------
CALL _Noise_Wind
; ARP = AR4. AR4 -> noise_windowCntr.
; AR3 -> vc.
; AR2 -> FR1(neutral). AR5-> trig.
;--------------------------------------------------------------------------------
B __CMTN_st_end
; ARP = AR4. AR4 -> noise_windowCntr.
; AR3 -> vc.
; AR2 -> FR1(neutral). AR5-> trig.
;--------------------------------------------------------------------------------
; ARP = AR4. AR4 -> noise_windowCntr.
; AR3 -> vc.
; AR2 -> FR1(neutral). AR5-> trig.
__CMTN_clr_nw_s3:
SPLK #CLEAR,*
; noise_windowCntr = 0.
; ARP = AR4. AR4 -> noise_windowCntr.
; AR3 -> vc.
; AR2 -> FR1(neutral). AR5-> trig.
;--------------------------------------------------------------------------------
B __CMTN_st_end
; ARP = AR4. AR4 -> noise_windowCntr.
; AR3 -> vc.
; AR2 -> FR1(neutral). AR5-> trig.
;================================================================================
; state 4 - ZC for phase B
; ARP = AR3. AR3 -> trig. AR4 -> debug_Bemf.
; AR2 -> FR1(neutral). AR5-> trig.
;
__CMTN_state_cna:
ADRK #2 ; ARP = AR3. AR3 -> vb. AR4 -> debug_Bemf.
; AR2 -> FR1(neutral). AR5-> trig.
;-------------------------------------------------------------------------------
LACC *,1 ; Accumulator = 2 * vb.
; ARP = AR3. AR3->vb. AR4 -> debug_Bemf.
; AR2 -> FR1(neutral). AR5-> trig.
;--------------------------------------------------------------------------------
ADD *,AR2 ; Accumulator = 3 * vb.
; neutral = 3 * neutral voltage (Vn)
; ARP = AR2. AR2 -> FR1(neutral).
; AR3->vb. AR4 -> debug_Bemf. AR5-> trig.
;--------------------------------------------------------------------------------
SUB *,AR4 ; Accumulator = 3 * vb - neutral = 3*Vb - 3*Vn.
; ARP = AR4. AR4 -> debug_Bemf.
; AR2 -> FR1(neutral). AR3->vb. AR5-> trig.
;--------------------------------------------------------------------------------
SACL *+ ; debug_Bemf = 3 * vb - neutral = 3*Vb - 3*Vn.
; ARP = AR4. AR4 -> noise_windowCntr.
; AR2 -> FR1(neutral). AR3->vb. AR5-> trig.
;--------------------------------------------------------------------------------
MAR *+ ; ARP = AR4. AR4 -> d30_doneFlg
; AR2 -> FR1(neutral). AR3->vb. AR5-> trig.
;--------------------------------------------------------------------------------
SPLK #CLEAR, *-
; d30_doneFlg = 0;
; Clear flag for delay calc in state 5
; ARP = AR4. AR4 -> noise_windowCntr.
; AR2 -> FR1(neutral). AR3-> vb. AR5-> trig.
;--------------------------------------------------------------------------------
BCND __CMTN_clr_nw_s4,GT
; ARP = AR4. AR4 -> noise_windowCntr.
; AR2 -> FR1(neutral). AR3-> vb. AR5-> trig.
;--------------------------------------------------------------------------------
CALL _Noise_Wind
; ARP = AR4. AR4 -> noise_windowCntr.
; AR2 -> FR1(neutral). AR3-> vb. AR5-> trig.
;--------------------------------------------------------------------------------
B __CMTN_st_end
; ARP = AR4. AR4 -> noise_windowCntr.
; AR2 -> FR1(neutral). AR3-> vb. AR5-> trig.
;--------------------------------------------------------------------------------
; ARP = AR4. AR4 -> noise_windowCntr.
; AR2 -> FR1(neutral). AR3-> vb. AR5-> trig.
__CMTN_clr_nw_s4:
SPLK #CLEAR,*
; noise_windowCntr = 0
; ARP = AR4. AR4 -> noise_windowCntr
; AR2 -> FR1(neutral). AR3-> vb. AR5-> trig.
;--------------------------------------------------------------------------------
B __CMTN_st_end
; ARP = AR4. AR4 -> noise_windowCntr
; AR2 -> FR1(neutral). AR3-> vb. AR5-> trig.
;================================================================================
; state 5 - ZC for phase A
; ARP = AR3. AR3 -> trig. AR2 -> FR1 (neutral).
; AR4 -> debug_Bemf.
; AR5-> trig.
__CMTN_state_cnb:
ADRK #1 ; ARP = AR3. AR3 -> va. AR2 -> FR1 (neutral).
; AR4 -> debug_Bemf.
; AR5-> trig.
;--------------------------------------------------------------------------------
LACC *,1 ; Accumulator = 2 * va.
; ARP = AR3. AR3 -> va. AR2 -> FR1 (neutral).
; AR4 -> debug_Bemf.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -