📄 sfoc_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\sfoc_ti.if C:\WINDOWS\TEMP\sfoc_ti.asm C:\WINDOWS\TEMP\sfoc_ti.tmp
.port
.file "sfoc_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\smopos.h"
.stag .fake5,368
.member _vsalfa,0,4,8,16
.member _esalfa,16,4,8,16
.member _zalfa,32,4,8,16
.member _gsmopos,48,4,8,16
.member _isalfae,64,4,8,16
.member _fsmopos,80,4,8,16
.member _vsbeta,96,4,8,16
.member _esbeta,112,4,8,16
.member _zbeta,128,4,8,16
.member _isbetae,144,4,8,16
.member _isalfa,160,4,8,16
.member _isalfaerr,176,4,8,16
.member _kslide,192,4,8,16
.member _isbeta,208,4,8,16
.member _isbetaerr,224,4,8,16
.member _esalfalo,240,4,8,16
.member _kslf,256,4,8,16
.member _esbetalo,272,4,8,16
.member _thetau,288,4,8,16
.member _thetae,304,4,8,16
.member _comp_ang_flg,320,4,8,16
.member _speedref,336,4,8,16
.member _calc,352,148,8,16
.eos
.sym _SMOPOS,0,8,13,368,.fake5
.globl _smopos_calc
.file "../../../../lib/dmclib/clib/include\speed_fr.h"
.stag .fake6,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,.fake6
.globl _speed_frq
.file "../../../../lib/dmclib/clib/include\volt_cal.h"
.stag .fake7,160
.member _DC_bus,0,4,8,16
.member _Mfunc_V1,16,4,8,16
.member _Mfunc_V2,32,4,8,16
.member _Mfunc_V3,48,4,8,16
.member _Vphase_A,64,4,8,16
.member _Vphase_B,80,4,8,16
.member _Vphase_C,96,4,8,16
.member _Vdirect,112,4,8,16
.member _Vquadra,128,4,8,16
.member _calc,144,148,8,16
.eos
.sym _PHASEVOLTAGE,0,8,13,160,.fake7
.globl _phase_voltage_calc
.file "../include\sfoc_ti.h"
.stag .fake8,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,.fake8
.stag .fake9,32
.member _d,0,4,8,16
.member _q,16,4,8,16
.eos
.sym _dq,0,8,13,32,.fake9
.stag .fake10,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,.fake10
.stag .fake11,2400
.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 _Est_spd,176,4,8,16
.member _shaft_theta_elec,192,4,8,16
.member _shaft_direction,208,4,8,16
.member _Vbus,224,4,8,16
.member _current_abc,240,8,8,48,.fake8
.member _current_dq,288,8,8,32,.fake9
.member _current_DQ,320,8,8,32,.fake9
.member _current_dqt,352,8,8,48,.fake10
.member _voltage_dq,400,8,8,32,.fake9
.member _voltage_DQt,432,8,8,48,.fake10
.member _svgen,480,8,8,96,.fake1
.member _pid_id,576,8,8,304,.fake2
.member _pid_iq,880,8,8,304,.fake2
.member _pid_spd,1184,8,8,304,.fake2
.member _smo,1488,8,8,368,.fake5
.member _rmpc,1856,8,8,128,.fake3
.member _rg,1984,8,8,112,.fake4
.member _speed,2096,8,8,144,.fake6
.member _volt,2240,8,8,160,.fake7
.eos
.sym _SFOC_TI,0,8,13,2400,.fake11
.sym _SFOC_TI_handle,0,24,13,16,.fake11
.globl _SFOC_TI_Init
.globl _SFOC_TI_Run
.globl _mul_q
.file "sfoc_ti.c"
.text
.sym _SFOC_TI_Init,_SFOC_TI_Init,32,2,0
.globl _SFOC_TI_Init
.func 33
;>>>> void SFOC_TI_Init(SFOC_TI_handle v)
******************************************************
* FUNCTION DEF : _SFOC_TI_Init
******************************************************
_SFOC_TI_Init:
LF1 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+,AR2
.sym _v,-3+LF1,24,9,16,.fake11
.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 125
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 58,000000000H,1
.sym _SFOC_TI_Run,_SFOC_TI_Run,32,2,0
.globl _SFOC_TI_Run
.func 389
;>>>> void SFOC_TI_Run(SFOC_TI_handle v)
******************************************************
* FUNCTION DEF : _SFOC_TI_Run
******************************************************
_SFOC_TI_Run:
LF2 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+,AR2
.sym _v,-3+LF2,24,9,16,.fake11
.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 116
SACL * ,AR2
.line 12
;>>>> v->rmpc.calc((void *)&v->rmpc); /* Call RMPCNTL compute function */
LAC * ,AR1
ADDK 116
SACL *+,AR3
ADRK 120
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 121
LAC * ,AR4
ADRK 124
SACL * ,AR2
.line 22
;>>>> v->rg.calc((void *)&v->rg); /* Call RAMPGEN compute function */
LAC * ,AR1
ADDK 124
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 27
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 120
LAC * ,AR4
MAR *+
SACL * ,AR2
.line 34
;>>>> ipark((void *)&v->voltage_DQt,(void *)&v->voltage_dq);
LAC * ,AR1
ADDK 25
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 25
LAC * ,AR4
ADRK 30
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 30
SACL *+,AR3
ADRK 9
LAC * ,AR1
CALA
MAR *-
EPI0_2:
.line 47
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 435,000000000H,1
*****************************************************
* UNDEFINED REFERENCES *
*****************************************************
.global _ipark
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -