imvcf07.asm
来自「2407的交流电机控制程序」· 汇编 代码 · 共 1,275 行 · 第 1/2 页
ASM
1,275 行
*******************************************************
* TMS320C2x/C2xx/C5x ANSI C Codegen Version 7.00
*******************************************************
; d:\tic2xx\c2000\cgtools\bin\dspac.exe -v2xx -q -x0 D:\Imvc\IMVCF07.c C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\IMVCF07.if
; d:\tic2xx\c2000\cgtools\bin\dspopt.exe -v2xx -q -I0 -s -O0 C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\IMVCF07.if C:\DOCUME~1\ADMINI~1\LO
; d:\tic2xx\c2000\cgtools\bin\dspcg.exe -o -v2xx -q C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\IMVCF07.opt IMVCF07.asm C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\IMVCF07.tmp
.port
.bss _ref_cycles,1,1
.bss _ref_time,1
.file "D:\Imvc\IMVCF07.c"
.file "IMVC07h.h"
.globl _position
.globl _pwm_period
.globl _ad_res_0
.globl _ad_res_1
.globl _offset_ia
.globl _offset_ib
.globl _fast_max_count
.globl _middle_max_count
.globl _slow_max_count
.globl _pos_ref
.globl _pos
.globl _Kps_pos
.globl _Kis_pos
.globl _pos_ref_1
.globl _pos_1
.globl _e_pos_1
.globl _I_pos_1_high
.globl _I_pos_1_low
.globl _omg_ref
.globl _omg_ref_low
.globl _omg
.globl _Kps_omg
.globl _sf_P_omg
.globl _Kis_omg
.globl _sf_I_omg
.globl _omg_ref_1
.globl _omg_1
.globl _e_omg_1
.globl _I_omg_1_high
.globl _I_omg_1_low
.globl _i_q_ref
.globl _iq_ref_low
.globl _i_a
.globl _i_b
.globl _i_alpha
.globl _i_beta
.globl _i_d
.globl _i_q
.globl _u_d_ref
.globl _u_q_ref
.globl _u_alpha_ref
.globl _u_beta_ref
.globl _u_dc_ref
.globl _u_a_ref
.globl _u_b_ref
.globl _u_c_ref
.globl _theta
.globl _sin_theta
.globl _cos_theta
.globl _i_d_ref
.globl _Kps_id
.globl _sf_P_id
.globl _Kis_id
.globl _sf_I_id
.globl _id_ref_1
.globl _id_1
.globl _e_id_1
.globl _I_id_1_high
.globl _I_id_1_low
.globl _ud_ref_low
.globl _Kps_iq
.globl _sf_P_iq
.globl _Kis_iq
.globl _sf_I_iq
.globl _iq_ref_1
.globl _iq_1
.globl _e_iq_1
.globl _I_iq_1_high
.globl _I_iq_1_low
.globl _uq_ref
.globl _uq_ref_low
.globl _crt_comp
.globl _ctrl_ps_per
.globl _ctrl_crt_per
.globl _ctrl_pos_per
.globl _log_table
.globl _log_indx
.globl _log_size
.globl _log_count
.globl _log_time
.globl _log_p
.globl _ref_long
.globl _ref_indx
.globl _ref_time
.globl _ref_cycles
.globl _ref_time_val
.globl _ref_HL
.globl _C_slip
.globl _C_omg
.globl _Sh_omg
.globl _Sh_slip
.globl _theta_low
.globl _theta_inc
.globl _flag_active_fast
.globl _flag_active_middle
.globl _flag_active_slow
.globl _counter_fast
.globl _counter_middle
.globl _counter_slow
.globl _init_pdpint
.globl __pdpint_rti
.globl _InitializeKernel
.globl _init_IO_registers
.globl _init_encoder
.globl _init_pwm
.globl _init_adc
.globl _init_ctr_ps
.globl _init_ctr_crt
.globl _init_ctr_pos
.globl _get_ia_ib_offsets
.globl _logger
.globl _init_logger
.globl _init_reference
.globl _update_ref
.globl _ref_pos
.globl _init_field_pos
.globl _reset_Error_ACPM
.globl _read_int_adc
.globl _update_pwm
.globl _start_pwm
.globl _tabcdq
.globl _tdqabc
.globl _start_ctr_ps
.globl _start_ctr_crt
.globl _start_ctr_pos
.globl _start_encoder
.globl _read_encoder
.globl _loadsatvals
.globl _sine
.globl _cfgiopb1
.globl _setiopb1
.globl _resetiopb1
.globl _wait_state
.globl _ISR_Kernel
.file "D:\Imvc\IMVCF07.c"
.text
.sym _init_reg_id,_init_reg_id,32,2,0
.globl _init_reg_id
.func 38
******************************************************
* FUNCTION DEF : _init_reg_id
******************************************************
_init_reg_id:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+
*** 40 ----------------------- Kps_id = 21598;
.line 3
LDPK _Kps_id
SPLK #21598,_Kps_id
*** 41 ----------------------- Kis_id = 4915;
.line 4
LDPK _Kis_id
SPLK #4915,_Kis_id
*** 42 ----------------------- sf_P_id = 1;
.line 5
LACK 1
LDPK _sf_P_id
SACL _sf_P_id
*** 43 ----------------------- sf_I_id = 0;
.line 6
LACK 0
LDPK _sf_I_id
SACL _sf_I_id
*** 44 ----------------------- init_pi_reg_id();
.line 7
CALL _init_pi_reg_id
*** ----------------------- return;
EPI0_1:
.line 8
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 45,000000000H,1
.sym _init_reg_iq,_init_reg_iq,32,2,0
.globl _init_reg_iq
.func 54
******************************************************
* FUNCTION DEF : _init_reg_iq
******************************************************
_init_reg_iq:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+
*** 56 ----------------------- Kps_iq = 21598;
.line 3
LDPK _Kps_iq
SPLK #21598,_Kps_iq
*** 57 ----------------------- Kis_iq = 4915;
.line 4
LDPK _Kis_iq
SPLK #4915,_Kis_iq
*** 58 ----------------------- sf_P_iq = 1;
.line 5
LACK 1
LDPK _sf_P_iq
SACL _sf_P_iq
*** 59 ----------------------- sf_I_iq = 0;
.line 6
LACK 0
LDPK _sf_I_iq
SACL _sf_I_iq
*** 60 ----------------------- init_pi_reg_iq();
.line 7
CALL _init_pi_reg_iq
*** ----------------------- return;
EPI0_2:
.line 8
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 61,000000000H,1
.sym _init_reg_pos,_init_reg_pos,32,2,0
.globl _init_reg_pos
.func 70
******************************************************
* FUNCTION DEF : _init_reg_pos
******************************************************
_init_reg_pos:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+
*** 72 ----------------------- Kps_pos = 1;
.line 3
LACK 1
LDPK _Kps_pos
SACL _Kps_pos
*** 73 ----------------------- Kis_pos = 1;
.line 4
LDPK _Kis_pos
SACL _Kis_pos
*** 74 ----------------------- init_pi_reg_pos();
.line 5
CALL _init_pi_reg_pos
*** ----------------------- return;
EPI0_3:
.line 6
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 75,000000000H,1
.sym _init_reg_omg,_init_reg_omg,32,2,0
.globl _init_reg_omg
.func 84
******************************************************
* FUNCTION DEF : _init_reg_omg
******************************************************
_init_reg_omg:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+
*** 86 ----------------------- Kps_omg = 30418;
.line 3
LDPK _Kps_omg
SPLK #30418,_Kps_omg
*** 87 ----------------------- Kis_omg = 24334;
.line 4
LDPK _Kis_omg
SPLK #24334,_Kis_omg
*** 88 ----------------------- sf_P_omg = 11;
.line 5
LACK 11
LDPK _sf_P_omg
SACL _sf_P_omg
*** 89 ----------------------- sf_I_omg = 6;
.line 6
LACK 6
LDPK _sf_I_omg
SACL _sf_I_omg
*** 90 ----------------------- init_pi_reg_omg();
.line 7
CALL _init_pi_reg_omg
*** ----------------------- return;
EPI0_4:
.line 8
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 91,000000000H,1
.sym _init_encoder,_init_encoder,32,2,0
.globl _init_encoder
.func 100
******************************************************
* FUNCTION DEF : _init_encoder
******************************************************
_init_encoder:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+,AR3
*** 102 ----------------------- *(unsigned*)0x7090 |= 0x18u;
.line 3
LARK AR3,28816
LACK 24
OR *
SACL * ,AR4
*** 103 ----------------------- *(unsigned*)0x7400 &= 0xe7ffu;
.line 4
LARK AR4,29696
LACK 59391
AND *
SACL *
*** 104 ----------------------- *(unsigned*)0x7407 = 0xffffu;
.line 5
ADRK 7
SPLK #65535,*
*** 105 ----------------------- *(unsigned*)0x7405 = 0u;
.line 6
LACK 0
SBRK 2
SACL *
*** 106 ----------------------- *(unsigned*)0x7408 = 6192u;
.line 7
ADRK 3
SPLK #6192,*
*** ----------------------- return;
EPI0_5:
.line 8
MAR * ,AR1
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 107,000000000H,1
.sym _init_pwm,_init_pwm,32,2,0
.globl _init_pwm
.func 116
******************************************************
* FUNCTION DEF : _init_pwm
******************************************************
_init_pwm:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+,AR3
*** 118 ----------------------- *(unsigned*)0x7400 |= 0x80u;
.line 3
LARK AR3,29696
LACK 128
OR *
SACL *
*** 119 ----------------------- *(unsigned*)0x7400 &= 0xffefu;
.line 4
LACK 65519
AND *
SACL * ,AR4
*** 120 ----------------------- *(unsigned*)0x7090 |= 0xfdbu;
.line 5
LARK AR4,28816
LACK 4059
OR *
SACL * ,AR3
*** 121 ----------------------- *(unsigned*)0x7403 = 750u;
.line 6
ADRK 3
SPLK #750,*
*** 122 ----------------------- pwm_period = 750;
.line 7
LDPK _pwm_period
SPLK #750,_pwm_period
*** 123 ----------------------- *(unsigned*)0x7401 = 0u;
.line 8
LACK 0
SBRK 2
SACL *
*** 124 ----------------------- *(unsigned*)0x7415 = 2788u;
.line 9
ADRK 20
SPLK #2788,*
*** 125 ----------------------- *(unsigned*)0x7413 = 1638u;
.line 10
SBRK 2
SPLK #1638,*
*** 126 ----------------------- *(unsigned*)0x7417 = 375u;
.line 11
ADRK 4
SPLK #375,*+
*** 127 ----------------------- *(unsigned*)0x7418 = 375u;
.line 12
SPLK #375,*+
*** 128 ----------------------- *(unsigned*)0x7419 = 375u;
.line 13
SPLK #375,*
*** 129 ----------------------- *(unsigned*)0x7404 = 2048u;
.line 14
SBRK 21
SPLK #2048,*
*** ----------------------- return;
EPI0_6:
.line 15
MAR * ,AR1
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 130,000000000H,1
.sym _init_adc,_init_adc,32,2,0
.globl _init_adc
.func 139
******************************************************
* FUNCTION DEF : _init_adc
******************************************************
_init_adc:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+,AR3
*** 141 ----------------------- *(unsigned*)0x70a0 = 16384u;
.line 3
LARK AR3,28832
SPLK #16384,*
*** 142 ----------------------- *(unsigned*)0x70a0 = 12320u;
.line 4
SPLK #12320,*
*** 143 ----------------------- *(unsigned*)0x70a2 = 2u;
.line 5
LACK 2
ADRK 2
SACL *+
*** 144 ----------------------- *(unsigned*)0x70a3 = 1382u;
.line 6
SPLK #1382,*+
*** 145 ----------------------- *(unsigned*)0x70a4 = 0u;
.line 7
LACK 0
SACL *+
*** 146 ----------------------- *(unsigned*)0x70a5 = 0u;
.line 8
SACL *+
*** 147 ----------------------- *(unsigned*)0x70a6 = 0u;
.line 9
SACL *
*** 148 ----------------------- *(unsigned*)0x70a1 = 256u;
.line 10
SBRK 5
SPLK #256,*
*** ----------------------- return;
EPI0_7:
.line 11
MAR * ,AR1
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 149,000000000H,1
.sym _InitializeKernel,_InitializeKernel,32,2,0
.globl _InitializeKernel
.func 158
******************************************************
* FUNCTION DEF : _InitializeKernel
******************************************************
_InitializeKernel:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+,AR3
*** 161 ----------------------- flag_active_fast = 0;
.line 4
LACK 0
LDPK _flag_active_fast
SACL _flag_active_fast
*** 162 ----------------------- flag_active_middle = 0;
.line 5
LDPK _flag_active_middle
SACL _flag_active_middle
*** 163 ----------------------- flag_active_slow = 0;
.line 6
LDPK _flag_active_slow
SACL _flag_active_slow
*** 164 ----------------------- counter_fast = fast_max_count;
.line 7
LDPK _fast_max_count
BLDD _fast_max_count,#_counter_fast
*** 165 ----------------------- counter_middle = middle_max_count;
.line 8
LDPK _middle_max_count
BLDD _middle_max_count,#_counter_middle
*** 166 ----------------------- counter_slow = slow_max_count;
.line 9
LDPK _slow_max_count
BLDD _slow_max_count,#_counter_slow
*** 167 ----------------------- *(unsigned*)0x3e6 = &ISR_Kernel;
.line 10
LALK _ISR_Kernel+0
LARK AR3,998
SACL * ,AR4
*** 168 ----------------------- *(unsigned*)0x742c = 513u;
.line 11
LARK AR4,29740
SPLK #513,* ,AR5
*** 169 ----------------------- *(unsigned*)0x4 = 18u;
.line 12
LARK AR5,4
LACK 18
SACL *
*** ----------------------- return;
EPI0_8:
.line 13
MAR * ,AR1
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 170,000000000H,1
.sym _get_ia_ib_offsets,_get_ia_ib_offsets,32,2,0
.globl _get_ia_ib_offsets
.func 179
******************************************************
* FUNCTION DEF : _get_ia_ib_offsets
******************************************************
_get_ia_ib_offsets:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,4
LAR AR0,*0+
; <save register vars>
SAR AR6,*+
SAR AR7,*+,AR2
*
* AR5 assigned to variable i_ww
* AR6 assigned to variable i
* AR7 assigned to variable j
* --- i_wwww shares AUTO storage with i_www
*
*** 184 ----------------------- if ( (unsigned)(i_www = 0) >= 0xfde8u ) goto g3;
.sym _i_wwww,1,4,1,16
.sym _i_a_offset,2,14,1,16
.sym _i_b_offset,3,14,1,16
.line 6
LACK 0
LARK AR2,1
MAR *0+
SACL *
ANDK 0FFFFh
RSXM
SUBK -536
BGEZ L3
MAR * ,AR1
L2:
*** -----------------------g2:
*** 185 ----------------------- u_a_ref = (-32700);
.line 7
LACK -32700
LDPK _u_a_ref
SACL _u_a_ref
*** 185 ----------------------- u_b_ref = (-32700);
LDPK _u_b_ref
SACL _u_b_ref
*** 185 ----------------------- u_c_ref = (-32700);
LDPK _u_c_ref
SACL _u_c_ref
*** 185 ----------------------- update_pwm();
CALL _update_pwm,AR1
*** 184 ----------------------- if ( (unsigned)(++i_www) < 0xfde8u ) goto g2;
.line 6
SSXM
MAR * ,AR2
LARK AR2,1
MAR *0+
LAC *
ADDK 1
SACL * ,AR1
ANDK 0FFFFh
RSXM
SUBK -536
BLZ L2
L3:
*** -----------------------g3:
*** 187 ----------------------- if ( (i_wwww = 0) >= 10 ) goto g12;
.line 9
LACK 0
MAR * ,AR2
SACL *
SUBK 10
BGEZ EPI0_9
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?