📄 foc_ti.asm
字号:
*******************************************************
* TMS320C24xx ANSI C Codegen Version 7.02
*******************************************************
; dspac -i../../../../rtmon/ -i../include -i../../../../lib/dmclib/clib/include -i../../../../lib/drvlib/clib/include -v2xx -iC:/t
; dspopt NOT RUN
; dspcg -o -v2xx -o C:\WINDOWS\TEMP\foc_ti.if C:\WINDOWS\TEMP\foc_ti.asm C:\WINDOWS\TEMP\foc_ti.tmp
.port
.file "foc_ti.c"
.file "../../../../lib/dmclib/clib/include\svgen.h"
.stag .fake0,144
.member _gain,0,4,8,16
.member _freq,16,4,8,16
.member _freq_max,32,4,8,16
.member _alpha,48,4,8,16
.member _sector,64,4,8,16
.member _va,80,4,8,16
.member _vb,96,4,8,16
.member _vc,112,4,8,16
.member _calc,128,148,8,16
.eos
.sym _SVGENMF,0,8,13,144,.fake0
.sym _SVGENMF_handle,0,24,13,16,.fake0
.stag .fake1,96
.member _d,0,4,8,16
.member _q,16,4,8,16
.member _va,32,4,8,16
.member _vb,48,4,8,16
.member _vc,64,4,8,16
.member _calc,80,148,8,16
.eos
.sym _SVGENDQ,0,8,13,96,.fake1
.sym _SVGENDQ_handle,0,24,13,16,.fake1
.globl _svgenmf_calc
.globl _svgendq_calc
.file "../../../../lib/dmclib/clib/include\pid_reg3.h"
.stag .fake2,304
.member _pid_ref_reg3,0,4,8,16
.member _pid_fdb_reg3,16,4,8,16
.member _e_reg3,32,4,8,16
.member _Kp_reg3,48,4,8,16
.member _up_reg3,64,4,8,16
.member _ui_hi_reg3,80,4,8,16
.member _ui_lo_reg3,96,4,8,16
.member _ud_lo_reg3,112,4,8,16
.member _ud_hi_reg3,128,4,8,16
.member _uprsat_reg3,144,4,8,16
.member _pid_out_max,160,4,8,16
.member _pid_out_min,176,4,8,16
.member _pid_out_reg3,192,4,8,16
.member _saterr_reg3,208,4,8,16
.member _Ki_reg3,224,4,8,16
.member _Kc_reg3,240,4,8,16
.member _Kd_reg3,256,4,8,16
.member _up1_reg3,272,4,8,16
.member _calc,288,148,8,16
.eos
.sym _PIDREG3,0,8,13,304,.fake2
.globl _pid_reg3_calc
.file "../../../../lib/dmclib/clib/include\rmp_cntl.h"
.stag .fake3,128
.member _target_value,0,4,8,16
.member _rmp_dly_max,16,4,8,16
.member _rmp_lo_limit,32,4,8,16
.member _rmp_hi_limit,48,4,8,16
.member _rmp_delay_cntl,64,4,8,16
.member _setpt_value,80,4,8,16
.member _s_eq_t_flg,96,4,8,16
.member _calc,112,148,8,16
.eos
.sym _RMPCNTL,0,8,13,128,.fake3
.globl _rmp_cntl_calc
.file "../../../../lib/dmclib/clib/include\rampgen.h"
.stag .fake4,112
.member _rmp_freq,0,4,8,16
.member _step_angle_max,16,4,8,16
.member _angle_rg,32,4,8,16
.member _rmp_gain,48,4,8,16
.member _rmp_out,64,4,8,16
.member _rmp_offset,80,4,8,16
.member _calc,96,148,8,16
.eos
.sym _RAMPGEN,0,8,13,112,.fake4
.sym _RAMPGEN_handle,0,24,13,16,.fake4
.globl _rampgen_calc
.file "../../../../lib/dmclib/clib/include\speed_fr.h"
.stag .fake5,144
.member _theta_elec,0,4,8,16
.member _K1_fr,16,4,8,16
.member _theta_old,32,4,8,16
.member _K2_fr,48,4,8,16
.member _speed_frq,64,4,8,16
.member _K3_fr,80,4,8,16
.member _rpm_max,96,4,8,16
.member _speed_rpm,112,4,8,16
.member _calc,128,148,8,16
.eos
.sym _SPEED_MEAS,0,8,13,144,.fake5
.globl _speed_frq
.file "../include\foc_ti.h"
.stag .fake6,48
.member _a,0,4,8,16
.member _b,16,4,8,16
.member _c,32,4,8,16
.eos
.sym _triad,0,8,13,48,.fake6
.stag .fake7,32
.member _d,0,4,8,16
.member _q,16,4,8,16
.eos
.sym _dq,0,8,13,32,.fake7
.stag .fake8,48
.member _D,0,4,8,16
.member _Q,16,4,8,16
.member _theta,32,4,8,16
.eos
.sym _DQt,0,8,13,48,.fake8
.stag .fake9,1696
.member _GPR0,0,4,8,16
.member _GPR1,16,4,8,16
.member _GPR2,32,4,8,16
.member _speed_ref,48,4,8,16
.member _speed_ref_rpm,64,4,8,16
.member _Id_ref,80,4,8,16
.member _Iq_ref,96,4,8,16
.member _Vd_testing,112,4,8,16
.member _Vq_testing,128,4,8,16
.member _lockrtr_flg,144,4,8,16
.member _Mea_spd,160,4,8,16
.member _shaft_theta_elec,176,4,8,16
.member _shaft_direction,192,4,8,16
.member _current_abc,208,8,8,48,.fake6
.member _current_dq,256,8,8,32,.fake7
.member _current_DQ,288,8,8,32,.fake7
.member _current_dqt,320,8,8,48,.fake8
.member _voltage_dq,368,8,8,32,.fake7
.member _voltage_DQt,400,8,8,48,.fake8
.member _svgen,448,8,8,96,.fake1
.member _pid_id,544,8,8,304,.fake2
.member _pid_iq,848,8,8,304,.fake2
.member _pid_spd,1152,8,8,304,.fake2
.member _rmpc,1456,8,8,128,.fake3
.member _rg,1584,8,8,112,.fake4
.eos
.sym _FOC_TI,0,8,13,1696,.fake9
.sym _FOC_TI_handle,0,24,13,16,.fake9
.globl _FOC_TI_Init
.globl _FOC_TI_Run
.globl _mul_q
.file "foc_ti.c"
.text
.sym _FOC_TI_Init,_FOC_TI_Init,32,2,0
.globl _FOC_TI_Init
.func 32
;>>>> void FOC_TI_Init(FOC_TI_handle v)
******************************************************
* FUNCTION DEF : _FOC_TI_Init
******************************************************
_FOC_TI_Init:
LF1 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+,AR2
.sym _v,-3+LF1,24,9,16,.fake9
.line 2
.line 17
;>>>> v->rg.step_angle_max = 874; /* This is based on 15kHz sampling frequency */
LARK AR2,-3+LF1
MAR *0+
LAR AR3,* ,AR3
ADRK 100
SPLK #874,*
.line 22
;>>>> v->rmpc.rmp_dly_max = 50;
LACK 50
SBRK 8
SACL *+
.line 23
;>>>> v->rmpc.rmp_lo_limit = 0x8000;
SPLK #-32768,*+
.line 24
;>>>> v->rmpc.rmp_hi_limit = 0x7FFF;
SPLK #32767,* ,AR1
EPI0_1:
.line 26
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 57,000000000H,1
.sym _FOC_TI_Run,_FOC_TI_Run,32,2,0
.globl _FOC_TI_Run
.func 245
;>>>> void FOC_TI_Run(FOC_TI_handle v)
******************************************************
* FUNCTION DEF : _FOC_TI_Run
******************************************************
_FOC_TI_Run:
LF2 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+,AR2
.sym _v,-3+LF2,24,9,16,.fake9
.line 2
.line 7
;>>>> v->rmpc.target_value = v->speed_ref;
LARK AR2,-3+LF2
MAR *0+
LAR AR3,*
LAR AR4,* ,AR3
ADRK 3
LAC * ,AR4
ADRK 91
SACL * ,AR2
.line 12
;>>>> v->rmpc.calc((void *)&v->rmpc); /* Call RMPCNTL compute function */
LAC * ,AR1
ADDK 91
SACL *+,AR3
ADRK 95
LAC * ,AR1
CALA
MAR *-,AR2
.line 17
;>>>> v->rg.rmp_freq = v->rmpc.setpt_value;
LARK AR2,-3+LF2
MAR *0+
LAR AR3,*
LAR AR4,* ,AR3
ADRK 96
LAC * ,AR4
ADRK 99
SACL * ,AR2
.line 22
;>>>> v->rg.calc((void *)&v->rg); /* Call RAMPGEN compute function */
LAC * ,AR1
ADDK 99
SACL *+,AR3
ADRK 9
LAC * ,AR1
CALA
MAR *-,AR2
.line 27
;>>>> v->voltage_DQt.D = v->Vd_testing;
LARK AR2,-3+LF2
MAR *0+
LAR AR3,*
LAR AR4,* ,AR3
ADRK 7
LAC * ,AR4
ADRK 25
SACL *+,AR3
.line 28
;>>>> v->voltage_DQt.Q = v->Vq_testing;
MAR *+
LAC * ,AR4
SACL * ,AR3
.line 29
;>>>> v->voltage_DQt.theta = v->rg.rmp_out;
ADRK 95
LAC * ,AR4
MAR *+
SACL * ,AR2
.line 34
;>>>> ipark((void *)&v->voltage_DQt,(void *)&v->voltage_dq);
LAC * ,AR1
ADDK 23
SACL *+
ADDK 2
SACL *+
CALL _ipark
SBRK 2
.line 39
;>>>> v->svgen.d = v->voltage_dq.d;
MAR * ,AR2
LARK AR2,-3+LF2
MAR *0+
LAR AR3,*
LAR AR4,* ,AR3
ADRK 23
LAC * ,AR4
ADRK 28
SACL *+,AR3
.line 40
;>>>> v->svgen.q = v->voltage_dq.q;
MAR *+
LAC * ,AR4
SACL * ,AR2
.line 45
;>>>> v->svgen.calc((void *)&v->svgen); /* Call SVGENDQ compute function */
LAC * ,AR1
ADDK 28
SACL *+,AR3
ADRK 9
LAC * ,AR1
CALA
MAR *-
EPI0_2:
.line 47
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 291,000000000H,1
*****************************************************
* UNDEFINED REFERENCES *
*****************************************************
.global _ipark
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -