📄 amp.asm
字号:
.include "x24x_app.h"
.def AMP_INIT
.def AMP_MAIN
.def in_theta ;ding yi yi ge jiao du de shu ru
.def ina_amp ,inc_amp ,in_daoshu ;xu yao chan sheng de zheng xian fu zhi
.def theta_a,theta_b,theta_c ;san ge zi ran huan xiang jiao
.def out_ta,out_tb,out_tc ;ding yi san xiang zhan kong bi
.def theta_a,theta_b,theta_c
.ref SINTAB_360
.def amp_a,amp_b,amp_c
.def amp_dizhi
.def AAA
.def BBB
; .def CCC
; .def DDD
.def amp_bili
.ref Xin_IIR1
.ref IIR_BWT41
.ref Yout_IIR1
.def in_theta
.def theta_a
.def theta_b
.def theta_c
.def amp_period
.def amp_hperiod
.def amp_conv
.def amp_conv1
.def in_daoshu
.def add_120
.def PID_pointer
.ref PID_ref_a
.ref PID_in_a
.ref PID_out_a
.ref PID_MAIN_a
.ref PID_ref_c
.ref PID_in_c
.ref PID_out_c
.ref PID_MAIN_c
.ref out_Ua
.ref out_Uc
.def Ka
.def Kc
in_theta .usect "wave_ge",1
amp_dizhi .usect "wave_ge",1
ina_amp .usect "wave_ge",1
inc_amp .usect "wave_ge",1
in_daoshu .usect "wave_ge",1
theta_a .usect "wave_ge",1
theta_b .usect "wave_ge",1
theta_c .usect "wave_ge",1
out_ta .usect "wave_ge",1
out_tb .usect "wave_ge",1
out_tc .usect "wave_ge",1
add_120 .usect "wave_ge",1
amp_period .usect "wave_ge",1
amp_a .usect "wave_ge",1
amp_b .usect "wave_ge",1
amp_c .usect "wave_ge",1
amp_hperiod .usect "wave_ge",1
amp_conv .usect "wave_ge",1
amp_conv1 .usect "wave_ge",1
AAA .usect "wave_ge",1
BBB .usect "wave_ge",1
;CCC .usect "wave_ge",1
;DDD .usect "wave_ge",1
amp_bili .usect "wave_ge",1
PID_pointer .usect "wave_ge",1
Ka .usect "wave_ge",1
Kc .usect "wave_ge",1
AMP_INIT: NOP
NOP
NOP
LDP #add_120
SPLK #521,add_120
SPLK #1500,amp_hperiod
SPLK #3125,amp_period
; SPLK #15360,amp_conv
SPLK #2988,amp_conv ;Q10 biao shi (2*1500/514)
SPLK #12000,amp_dizhi ;Q6 DE (132.5*1.414)V
SPLK #10240,amp_bili ;Q12 de 5
RET
AMP_MAIN: SETC SXM
LDP #in_theta
LACC in_theta
BCND AMP1,GT
ADD amp_period
AMP1: SACL theta_a
;ADD add_120
;SUB amp_period
;BCND AMP_DYL1,GEQ
;ADD amp_period
;AMP_DYL1 NOP
;SACL theta_b
ADD add_120
SUB amp_period
BCND AMP_DYL2,GEQ
ADD amp_period
AMP_DYL2 NOP
SACL theta_c
LACC #SINTAB_360
ADD theta_a
TBLR amp_a
LACC #SINTAB_360
ADD theta_b
TBLR amp_b
LACC #SINTAB_360
ADD theta_c
TBLR amp_c
SPM 1
LT amp_dizhi ;Q6
MPY amp_a ;Q15
PAC
SACH out_ta ;Q6
MPY amp_c
PAC
SACH out_tc ;Q6
LDP #ina_amp
LACC out_ta
SUB ina_amp ;ina_amp ye shi Q6
SACL out_ta
******************************************PID regulate
LDP #PID_ref_a
BLDD #amp_dizhi,PID_ref_a
BLDD #out_Ua,PID_in_a
CALL PID_MAIN_a
LDP #Ka
BLDD #PID_out_a,Ka
******************************************
LDP #Xin_IIR1
BLDD #out_ta,Xin_IIR1
CALL IIR_BWT41
LDP #out_ta
; BLDD #Yout_IIR1,out_ta
LACC out_tc
SUB inc_amp ;Q6
SACL out_tc
******************************************PID regulate
LDP #PID_ref_c
BLDD #amp_dizhi,PID_ref_c
BLDD #out_Uc,PID_in_c
CALL PID_MAIN_c
LDP #Kc
BLDD #PID_out_c,Kc
******************************************
LDP #Xin_IIR1
BLDD #out_tc,Xin_IIR1
CALL IIR_BWT41
LDP #out_tc
; BLDD #Yout_IIR1,out_tc
LDP #Ka
SPM 1
LT Ka ;Q6
MPY out_ta ;Q14
PAC
ROL
SACH out_ta ;Q6
SACH AAA
SPM 1
LT Ka ;Q6
MPY out_tc ;Q14
PAC
ROL
SACH out_tc ;Q6
SACH BBB
*************************************************************************
;amp_conv shi ding zhi
;in_daoshu yu dian rong dian ya chen fan bi (514/Udc)
;ta de zhi wei yu 0--4 zhi jian ,ying ci yong Q13 ji shu
LT amp_conv ;Q10 biao shi (2*1500/514)
MPY in_daoshu ;Q13 (Udc_bef)
PAC
ROL
ROL
SACH amp_conv1 ;Q10
SPM 0
LT amp_conv1 ;Q10
MPY out_ta ;Q6
PAC
SACH out_ta ;Q16 ye jiu shi Q0 (gao 16 wei shi Q0)
; SACH CCC
MPY out_tc
PAC
SACH out_tc
**************************************************************************
; SPM 1
; LDP #Ka
; LT Ka ;Q12 de 5
; MPY amp_dizhi ;Q0
; PAC
; ROL
; SACH AAA ;Q0
; MPY out_tc ;Q0
; PAC
; ROL
; ROL
; ROL
; SACH out_tc ;Q0
**************************************************************************
LACC out_ta
ADD #750
SACL out_ta
LACC out_tc
ADD #750
SACL out_tc
SPLK #750,out_tb
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -