⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pmsm32.asm

📁 本程序来自TI公司网站原程序,其功能是通过传统的矢量控制算法来实现对永磁同步电机的控制,矢量控制采用双闭环结构
💻 ASM
📖 第 1 页 / 共 3 页
字号:
*******************************************************
* 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\pmsm32.if C:\WINDOWS\TEMP\pmsm32.asm C:\WINDOWS\TEMP\pmsm32.tmp 
	.port
	.bss	_isr_ticker,1,1
	.bss	_phantom_count$1,1
	.bss	_wdog,2
	.bss	_drive,3
	.bss	_dac,6
	.bss	_pwm,7
	.bss	_speed,9
	.bss	_qep,12
	.bss	_ilg2_vdc,13
	.bss	_sfoc,150
	.file	"pmsm32.c"
	.file	"../../../../lib/drvlib/clib/include\regs240x.h"
	.globl	_portffff
	.globl	_portff0f
	.globl	_port0
	.globl	_port1
	.globl	_port2
	.globl	_port3
	.globl	_port4
	.file	"../include\sysvecs.h"
 		 .include "..\..\..\..\rtmon\c200mnrt.i"				
 		 .include "..\..\..\..\lib\drvlib\clib\include\x24x.h"  
       	 .sect   "vectors"                              		
       	 .ref    _c_int0                                  		
       	 B       _c_int0         ;00h reset               		
       	 B       _phantom        ;02h INT1                		
       	 B       _c_int02        ;04h INT2                		
       	 B       _phantom        ;06h INT3                		
       	 B       _c_int04        ;08h INT4                		
       	 B       _phantom        ;0Ah INT5                		
       	 B       _phantom        ;0Ch INT6                		
      .if ( 1 ) ; macro occupies fourteen words in the vector table.	
											
MON_EINTR   mon_eintr_vecs       ; 0E					
                                 ; 10					
                                 ; 12					
                                 ; 14					
                                 ; 16					
                                 ; 18					
                                 ; 1A					
            .else ; macro not in vector table.				
MON_EINTR_B B     MON_EINTR      ; 0E					
HUNG10      B     HUNG10         ; 10					
HUNG12      B     HUNG12         ; 12					
HUNG14      B     HUNG14         ; 14					
HUNG16      B     HUNG16         ; 16					
HUNG18      B     HUNG18         ; 18					
HUNG1A      B     HUNG1A         ; 1A					
            .endif								
HUNG1C      B     HUNG1C         ; 1C					
HUNG1E      B     HUNG1E         ; 1E					
HUNG20      B     HUNG20         ; 20					
TRAP        B     TRAP           ; 22					
NMI         B     _phantom       ; 24					
            .if ( 1 ) ; macro occupies eight words in the vector table.	
MON_ETRAP   mon_etrap_vecs       ; 26					
                                 ; 28					
                                 ; 2A					
                                 ; 2C					
            .else ; macro not in vector table.				
MON_ETRAP_B B     MON_ETRAP      ; 26					
HUNG28      B     _phantom         ; 28					
HUNG2A      B     _phantom         ; 2A					
HUNG2C      B     _phantom         ; 2C					
            .endif								
HUNG2E      B     _phantom         ; 2E					
HUNG30      B     _phantom         ; 30					
HUNG32      B     _phantom         ; 32					
HUNG34      B     _phantom         ; 34					
HUNG36      B     _phantom         ; 36					
HUNG38      B     _phantom         ; 38					
HUNG3A      B     _phantom         ; 3A					
HUNG3C      B     _phantom         ; 3C					
HUNG3E      B     _phantom         ; 3E					
	.file	"../../../../lib/drvlib/clib/include\EVMDAC.h"

	.stag	.fake0,96
	.member	_qptr0,0,20,8,16
	.member	_qptr1,16,20,8,16
	.member	_qptr2,32,20,8,16
	.member	_qptr3,48,20,8,16
	.member	_scale,64,4,8,16
	.member	_update,80,148,8,16
	.eos
	.sym	_EVMDAC,0,8,13,96,.fake0
	.globl	_F24X_EVM_DAC_Update
	.file	"../../../../lib/drvlib/clib/include\F2407PWM.H"

	.stag	.fake1,112
	.member	_period_max,0,4,8,16
	.member	_mfunc_p,16,4,8,16
	.member	_mfunc_c1,32,4,8,16
	.member	_mfunc_c2,48,4,8,16
	.member	_mfunc_c3,64,4,8,16
	.member	_init,80,148,8,16
	.member	_update,96,148,8,16
	.eos
	.sym	_PWMGEN,0,8,13,112,.fake1
	.sym	_PWMGEN_handle,0,24,13,16,.fake1
	.globl	_F2407_EV1_PWM_Init
	.globl	_F2407_EV1_PWM_Update
	.globl	_F2407_EV2_PWM_Init
	.globl	_F2407_EV2_PWM_Update
	.file	"../../../../lib/drvlib/clib/include\F24X_WD.H"

	.stag	.fake2,32
	.member	_disable,0,148,8,16
	.member	_reset,16,148,8,16
	.eos
	.sym	_WATCHDOG,0,8,13,32,.fake2
	.sym	_WATCHDOG_handle,0,24,13,16,.fake2
	.globl	_F24x_WD_ResetCounter
	.globl	_F24x_WD_Disable
	.file	"../../../../lib/drvlib/clib/include\F2407QEP.H"

	.stag	.fake3,192
	.member	_dir_QEP,0,4,8,16
	.member	_cal_angle,16,4,8,16
	.member	_theta_raw,32,4,8,16
	.member	_mech_scale,48,4,8,16
	.member	_theta_mech,64,4,8,16
	.member	_polepairs,80,4,8,16
	.member	_theta_elec,96,4,8,16
	.member	_QEP_cnt_idx,112,4,8,16
	.member	_index_sync_flg,128,4,8,16
	.member	_calc,144,148,8,16
	.member	_init,160,148,8,16
	.member	_indexevent,176,148,8,16
	.eos
	.sym	_QEP,0,8,13,192,.fake3
	.globl	_F2407_EV1_QEP_Init
	.globl	_F2407_EV1_qep_theta_calc
	.globl	_F2407_EV1_QEP_Index_Handle
	.file	"../../../../lib/dmclib/clib/include\speed_fr.h"

	.stag	.fake4,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,.fake4
	.globl	_speed_frq
	.file	"../../../../lib/drvlib/clib/include\F07ILVD.h"

	.stag	.fake5,208
	.member	_Imeas_a_gain,0,4,8,16
	.member	_Imeas_a_offset,16,4,8,16
	.member	_Imeas_a,32,4,8,16
	.member	_Imeas_b_gain,48,4,8,16
	.member	_Imeas_b_offset,64,4,8,16
	.member	_Imeas_b,80,4,8,16
	.member	_Vdc_meas_gain,96,4,8,16
	.member	_Vdc_meas_offset,112,4,8,16
	.member	_Vdc_meas,128,4,8,16
	.member	_Imeas_c,144,4,8,16
	.member	_Ch_sel,160,4,8,16
	.member	_init,176,148,8,16
	.member	_read,192,148,8,16
	.eos
	.sym	_ILEG2DCBUSMEAS,0,8,13,208,.fake5
	.globl	_F2407_ileg2_dcbus_drv_init
	.globl	_F2407_ileg2_dcbus_drv_read
	.file	"../../../../lib/dmclib/clib/include\svgen.h"

	.stag	.fake6,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,.fake6
	.sym	_SVGENMF_handle,0,24,13,16,.fake6

	.stag	.fake7,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,.fake7
	.sym	_SVGENDQ_handle,0,24,13,16,.fake7
	.globl	_svgenmf_calc
	.globl	_svgendq_calc
	.file	"../../../../lib/dmclib/clib/include\pid_reg3.h"

	.stag	.fake8,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,.fake8
	.globl	_pid_reg3_calc
	.file	"../../../../lib/dmclib/clib/include\rmp_cntl.h"

	.stag	.fake9,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,.fake9
	.globl	_rmp_cntl_calc
	.file	"../../../../lib/dmclib/clib/include\rampgen.h"

	.stag	.fake10,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,.fake10
	.sym	_RAMPGEN_handle,0,24,13,16,.fake10
	.globl	_rampgen_calc
	.file	"../../../../lib/dmclib/clib/include\smopos.h"

	.stag	.fake11,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,.fake11
	.globl	_smopos_calc
	.file	"../../../../lib/dmclib/clib/include\volt_cal.h"

	.stag	.fake12,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,.fake12
	.globl	_phase_voltage_calc
	.file	"../include\sfoc_ti.h"

	.stag	.fake13,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,.fake13

	.stag	.fake14,32
	.member	_d,0,4,8,16
	.member	_q,16,4,8,16
	.eos
	.sym	_dq,0,8,13,32,.fake14

	.stag	.fake15,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,.fake15

	.stag	.fake16,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,.fake13
	.member	_current_dq,288,8,8,32,.fake14
	.member	_current_DQ,320,8,8,32,.fake14
	.member	_current_dqt,352,8,8,48,.fake15
	.member	_voltage_dq,400,8,8,32,.fake14
	.member	_voltage_DQt,432,8,8,48,.fake15
	.member	_svgen,480,8,8,96,.fake7
	.member	_pid_id,576,8,8,304,.fake8
	.member	_pid_iq,880,8,8,304,.fake8
	.member	_pid_spd,1184,8,8,304,.fake8
	.member	_smo,1488,8,8,368,.fake11
	.member	_rmpc,1856,8,8,128,.fake9
	.member	_rg,1984,8,8,112,.fake10
	.member	_speed,2096,8,8,144,.fake4
	.member	_volt,2240,8,8,160,.fake12
	.eos
	.sym	_SFOC_TI,0,8,13,2400,.fake16
	.sym	_SFOC_TI_handle,0,24,13,16,.fake16
	.globl	_SFOC_TI_Init
	.globl	_SFOC_TI_Run
	.globl	_mul_q
	.file	"../../../../lib/drvlib/clib/include\drive.h"

	.stag	.fake17,48
	.member	_enable_flg,0,4,8,16
	.member	_init,16,148,8,16
	.member	_calc,32,148,8,16
	.eos
	.sym	_DRIVE,0,8,13,48,.fake17
	.globl	_F24xx_drive_drv_init
	.globl	_F24xx_drive_drv_calc
	.file	"../include\pmsm32.h"
	.globl	_RstSystem
	.globl	_rtmon_init
	.globl	_c_int02
	.globl	_c_int04
	.globl	_phantom
	.file	"pmsm32.c"

	.sect	".cinit"
	.word	IS1,_pwm
	.word	1000
	.word	32767
	.word	16384
	.word	16384
	.word	16384
	.word	_F2407_EV1_PWM_Init+0
	.word	_F2407_EV1_PWM_Update+0
IS1	.set	7

	.sym	_pwm,_pwm,8,2,112,.fake1
	.globl	_pwm
	.word	IS2,_speed
	.word	0
	.word	4800
	.word	0
	.word	32361
	.word	0
	.word	407
	.word	6000
	.word	0
	.word	_speed_frq+0
IS2	.set	9

	.sym	_speed,_speed,8,2,144,.fake4
	.globl	_speed
	.word	IS3,_qep
	.word	0
	.word	-2365
	.word	0
	.word	16776
	.word	0
	.word	2
	.word	0
	.word	0
	.word	0
	.word	_F2407_EV1_qep_theta_calc+0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -