📄 bldc_ti.asm
字号:
*******************************************************
* TMS320C24xx ANSI C Codegen Version 7.04
*******************************************************
; dspac -i../../../../rtmon/ -i../include -i../../../../lib/dmclib/clib/include -i../../../../lib/drvlib/clib/include -v2xx -iC:/C
; dspopt NOT RUN
; dspcg -o -v2xx -o C:\DOCUME~1\jsg\LOCALS~1\Temp\bldc_ti.if C:\DOCUME~1\jsg\LOCALS~1\Temp\bldc_ti.asm C:\DOCUME~1\jsg\LOCALS~1\Temp\bldc_ti.tmp
.port
.file "bldc_ti.c"
.file "../../../../lib/dmclib/clib/include\mod6.h"
.stag .fake0,48
.member _trig_in,0,4,8,16
.member _cntr,16,4,8,16
.member _calc,32,148,8,16
.eos
.sym _MOD6CNT,0,8,13,48,.fake0
.sym _MOD6CNT_handle,0,24,13,16,.fake0
.globl _mod6cnt_calc
.file "../../../../lib/dmclib/clib/include\pid2.h"
.stag .fake1,208
.member _fb_reg2,0,4,8,16
.member _ref_reg2,16,4,8,16
.member _k0_reg2,32,4,8,16
.member _k1_reg2,48,4,8,16
.member _kc_reg2,64,4,8,16
.member _un_reg2,80,4,8,16
.member _en0_reg2,96,4,8,16
.member _upi_reg2,112,4,8,16
.member _epi_reg2,128,4,8,16
.member _max_reg2,144,4,8,16
.member _min_reg2,160,4,8,16
.member _out_reg2,176,4,8,16
.member _calc,192,148,8,16
.eos
.sym _PID2,0,8,13,208,.fake1
.sym _PID2_handle,0,24,13,16,.fake1
.globl _pid2_calc
.file "../../../../lib/dmclib/clib/include\impl.h"
.stag .fake2,64
.member _period,0,4,8,16
.member _out,16,4,8,16
.member _skpcnt,32,4,8,16
.member _calc,48,148,8,16
.eos
.sym _IMPULSE,0,8,13,64,.fake2
.sym _IMPULSE_handle,0,24,13,16,.fake2
.globl _impulse_calc
.file "../../../../lib/dmclib/clib/include\rmp2.h"
.stag .fake3,112
.member _max,0,4,8,16
.member _min,16,4,8,16
.member _dly,32,4,8,16
.member _delay_cntr,48,4,8,16
.member _desired,64,4,8,16
.member _out,80,4,8,16
.member _calc,96,148,8,16
.eos
.sym _RMP2,0,8,13,112,.fake3
.sym _RMP2_handle,0,24,13,16,.fake3
.globl _rmp2_calc
.file "../../../../lib/dmclib/clib/include\rmp3.h"
.stag .fake4,112
.member _desired,0,4,8,16
.member _dly,16,4,8,16
.member _dly_cntr,32,4,8,16
.member _min,48,4,8,16
.member _out,64,4,8,16
.member _done_flg,80,4,8,16
.member _calc,96,148,8,16
.eos
.sym _RMP3,0,8,13,112,.fake4
.sym _RMP3_handle,0,24,13,16,.fake4
.globl _rmp3_calc
.file "../../../../lib/dmclib/clib/include\cmtn.h"
.stag .fake5,304
.member _trig,0,4,8,16
.member _va,16,4,8,16
.member _vb,32,4,8,16
.member _vc,48,4,8,16
.member _zc_trig,64,4,8,16
.member _ptr_ct,80,4,8,16
.member _debug_Bemf,96,4,8,16
.member _noise_windowCntr,112,4,8,16
.member _d30_doneFlg,128,4,8,16
.member _time_stampNew,144,4,8,16
.member _time_stampOld,160,4,8,16
.member _v_timer,176,4,8,16
.member _delay,192,4,8,16
.member _dt_taskFlg,208,4,8,16
.member _noise_windowMax,224,4,8,16
.member _delay_cntr,240,4,8,16
.member _cdnw_delta,256,4,8,16
.member _nw_dynThold,272,4,8,16
.member _calc,288,148,8,16
.eos
.sym _CMTN,0,8,13,304,.fake5
.sym _CMTN_handle,0,24,13,16,.fake5
.globl _cmtn_trig_calc
.file "../include\bldc_ti.h"
.stag .fake6,976
.member _cmtn_period_target,0,4,8,16
.member _cmtn_period_setpt,16,4,8,16
.member _ramp_delay,32,4,8,16
.member _I_loop_flg,48,4,8,16
.member _D_func_desired,64,4,8,16
.member _sp_up_done_flg,80,4,8,16
.member _current_set,96,4,8,16
.member _align_flag,112,4,8,16
.member _impl,128,8,8,64,.fake2
.member _mod6,192,8,8,48,.fake0
.member _rmp3,240,8,8,112,.fake4
.member _cmtn,352,8,8,304,.fake5
.member _pid2,656,8,8,208,.fake1
.member _rmp2,864,8,8,112,.fake3
.eos
.sym _BLDC_TI,0,8,13,976,.fake6
.sym _BLDC_TI_handle,0,24,13,16,.fake6
.globl _BLDC_TI_Init
.globl _BLDC_TI_Run
.file "bldc_ti.c"
.text
.sym _BLDC_TI_Init,_BLDC_TI_Init,32,2,0
.globl _BLDC_TI_Init
.func 157
;>>>> void BLDC_TI_Init(BLDC_TI_handle v)
******************************************************
* FUNCTION DEF : _BLDC_TI_Init
******************************************************
_BLDC_TI_Init:
LF1 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+,AR2
.sym _v,-3+LF1,24,9,16,.fake6
.line 2
.line 3
;>>>> v->rmp2.out = ALIGN_DUTY;
LARK AR2,-3+LF1
MAR *0+
LAR AR3,* ,AR3
ADRK 59
SPLK #3072,*
.line 4
;>>>> v->rmp2.dly = 0x0050;
LACK 80
SBRK 3
SACL *
.line 5
;>>>> v->rmp2.max = 0x7ff0;
SBRK 2
SPLK #32752,*+
.line 6
;>>>> v->rmp2.min = 0x000f;
LACK 15
SACL * ,AR2
.line 8
;>>>> v->rmp3.desired = v->cmtn_period_target;
LAR AR4,* ,AR3
SSXM
SBRK 55
LAC * ,AR4
ADRK 15
SACL * ,AR3
.line 9
;>>>> v->rmp3.dly = v->ramp_delay;
ADRK 2
LAC *-,AR4
MAR *+
SACL * ,AR3
.line 10
;>>>> v->rmp3.out = v->cmtn_period_setpt;
LAC * ,AR4
ADRK 3
SACL * ,AR3
.line 11
;>>>> v->rmp3.min = 0x0050;
LACK 80
ADRK 17
SACL *
.line 13
;>>>> v->cmtn.nw_dynThold = 0x000f;
LACK 15
ADRK 21
SACL *-
.line 14
;>>>> v->cmtn.cdnw_delta = 0x0002;
LACK 2
SACL * ,AR4
.line 15
;>>>> v->cmtn.noise_windowMax =
;>>>> v->cmtn.nw_dynThold - v->cmtn.cdnw_delta;
ADRK 20
LAC * ,AR3
SUB *
SBRK 2
SACL *
.line 18
;>>>> v->pid2.max_reg2 = 0x7000; /* Q15 */
ADRK 14
SPLK #28672,*+
.line 19
;>>>> v->pid2.min_reg2 = 0x0000; /* Q15 */
LACK 0
SACL *
.line 20
;>>>> v->pid2.k0_reg2 = 0x0080; /* Q9 */
LACK 128
SBRK 8
SACL *+
.line 21
;>>>> v->pid2.k1_reg2 = 0x0140; /* Q13 */
SPLK #320,*+
.line 22
;>>>> v->pid2.kc_reg2 = 0x0506; /* Q13 */
SPLK #1286,* ,AR1
EPI0_1:
.line 23
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 179,000000000H,1
.sym _BLDC_TI_Run,_BLDC_TI_Run,32,2,0
.globl _BLDC_TI_Run
.func 271
;>>>> void BLDC_TI_Run(BLDC_TI_handle v)
******************************************************
* FUNCTION DEF : _BLDC_TI_Run
******************************************************
_BLDC_TI_Run:
LF2 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+,AR2
.sym _v,-3+LF2,24,9,16,.fake6
.line 2
.line 3
;>>>> (*v->cmtn.calc)(&v->cmtn);
LARK AR2,-3+LF2
MAR *0+
LAC * ,AR1
ADDK 22
SACL *+,AR2
LAR AR3,* ,AR3
ADRK 40
LAC * ,AR1
CALA
MAR *-,AR2
.line 5
;>>>> if(FALSE == v->sp_up_done_flg) {
LARK AR2,-3+LF2
MAR *0+
LAR AR3,* ,AR3
SSXM
ADRK 5
LAC *
BNZ L1
.line 6
;>>>> (*v->rmp3.calc)(&v->rmp3);
MAR * ,AR2
LAC * ,AR1
ADDK 15
SACL *+,AR3
ADRK 16
LAC * ,AR1
CALA
MAR *-,AR2
.line 7
;>>>> v->sp_up_done_flg = v->rmp3.done_flg;
LARK AR2,-3+LF2
MAR *0+
LAR AR3,*
LAR AR4,* ,AR3
SSXM
ADRK 20
LAC * ,AR4
ADRK 5
SACL * ,AR3
.line 8
;>>>> v->cmtn_period_setpt = v->rmp3.out;
MAR *-
LAC * ,AR4
SBRK 4
SACL * ,AR3
.line 10
;>>>> v->impl.period = v->rmp3.out;//脉冲周期信号
LAC * ,AR4
ADRK 7
SACL * ,AR2
.line 11
;>>>> (*v->impl.calc)(&v->impl);
LAC * ,AR1
ADDK 8
SACL *+,AR3
SBRK 8
LAC * ,AR1
CALA
MAR *-,AR2
.line 13
;>>>> v->mod6.trig_in = v->impl.out;
;>>>> else
LARK AR2,-3+LF2
MAR *0+
LAR AR3,*
LAR AR4,* ,AR3
SSXM
ADRK 9
LAC * ,AR4
ADRK 12
SACL *
B L2
L1:
.line 17
;>>>> v->mod6.trig_in = v->cmtn.trig; /* Closed Loop */
MAR * ,AR2
LAR AR4,* ,AR3
ADRK 17
LAC * ,AR4
ADRK 12
SACL *
L2:
.line 19
;>>>> (*v->mod6.calc)(&v->mod6); /* Open Loop */
MAR * ,AR2
LAC * ,AR1
ADDK 12
SACL *+,AR4
ADRK 2
LAC * ,AR1
CALA
MAR *-,AR2
.line 21
;>>>> v->cmtn.ptr_ct = v->mod6.cntr; /* Input to COMMUTATION_TRIGGER */
LARK AR2,-3+LF2
MAR *0+
LAR AR3,*
LAR AR4,* ,AR3
SSXM
ADRK 13
LAC * ,AR4
ADRK 27
SACL * ,AR3
.line 23
;>>>> v->pid2.ref_reg2 = v->current_set;
SBRK 7
LAC * ,AR4
ADRK 15
SACL * ,AR2
.line 24
;>>>> (*v->pid2.calc)(&v->pid2); /*
;>>>> ---------------------------------------------------------------------------
;>>>> Uses PID result when the flag is set, i.e., I_loop_flg=1
;>>>> Implements ramp control of D_func during open current loop
;>>>> control, i.e., I_loop_flg=0
;>>>> ---------------------------------------------------------------------------*/
LAC * ,AR1
ADDK 41
SACL *+,AR3
ADRK 47
LAC * ,AR1
CALA
MAR *-,AR2
.line 30
;>>>> if(FALSE == v->I_loop_flg){
LARK AR2,-3+LF2
MAR *0+
LAR AR3,* ,AR3
SSXM
ADRK 3
LAC *
BNZ L3
.line 31
;>>>> v->rmp2.desired = v->D_func_desired;
MAR *+,AR2
LAR AR4,* ,AR3
LAC * ,AR4
ADRK 58
SACL * ,AR2
.line 32
;>>>> (*v->rmp2.calc)(&v->rmp2);
LAC * ,AR1
ADDK 54
SACL *+,AR3
ADRK 56
LAC * ,AR1
CALA
MAR *-
L3:
EPI0_2:
.line 34
MAR * ,AR1
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 304,000000000H,1
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -