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 + -
显示快捷键?