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

📄 pmsm31.asm

📁 本程序来自TI公司网站原程序,其功能是通过传统的矢量控制算法来实现对永磁同步电机的控制,矢量控制采用双闭环结构
💻 ASM
📖 第 1 页 / 共 2 页
字号:
*******************************************************
* 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\pmsm31.if C:\WINDOWS\TEMP\pmsm31.asm C:\WINDOWS\TEMP\pmsm31.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	_ilg2,10
	.bss	_qep,12
	.bss	_foc,106
	.file	"pmsm31.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\F2407ILG.H"

	.stag	.fake5,160
	.member	_gain_a,0,4,8,16
	.member	_offset_a,16,4,8,16
	.member	_out_a,32,4,8,16
	.member	_gain_b,48,4,8,16
	.member	_offset_b,64,4,8,16
	.member	_out_b,80,4,8,16
	.member	_ch_a,96,4,8,16
	.member	_ch_b,112,4,8,16
	.member	_init,128,148,8,16
	.member	_read,144,148,8,16
	.eos
	.sym	_ILEG2MEAS,0,8,13,160,.fake5
	.globl	_F2407_leg2_drv_init
	.globl	_F2407_leg2_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	"../include\foc_ti.h"

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

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

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

	.stag	.fake14,1696
	.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	_shaft_theta_elec,176,4,8,16
	.member	_shaft_direction,192,4,8,16
	.member	_current_abc,208,8,8,48,.fake11
	.member	_current_dq,256,8,8,32,.fake12
	.member	_current_DQ,288,8,8,32,.fake12
	.member	_current_dqt,320,8,8,48,.fake13
	.member	_voltage_dq,368,8,8,32,.fake12
	.member	_voltage_DQt,400,8,8,48,.fake13
	.member	_svgen,448,8,8,96,.fake7
	.member	_pid_id,544,8,8,304,.fake8
	.member	_pid_iq,848,8,8,304,.fake8
	.member	_pid_spd,1152,8,8,304,.fake8
	.member	_rmpc,1456,8,8,128,.fake9
	.member	_rg,1584,8,8,112,.fake10
	.eos
	.sym	_FOC_TI,0,8,13,1696,.fake14
	.sym	_FOC_TI_handle,0,24,13,16,.fake14
	.globl	_FOC_TI_Init
	.globl	_FOC_TI_Run
	.globl	_mul_q
	.file	"../../../../lib/drvlib/clib/include\drive.h"

	.stag	.fake15,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,.fake15
	.globl	_F24xx_drive_drv_init
	.globl	_F24xx_drive_drv_calc
	.file	"../include\pmsm31.h"
	.globl	_RstSystem
	.globl	_rtmon_init
	.globl	_c_int02
	.globl	_c_int04
	.globl	_phantom
	.file	"pmsm31.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
	.word	_F2407_EV1_QEP_Init+0
	.word	_F2407_EV1_QEP_Index_Handle+0
IS3	.set	12

	.sym	_qep,_qep,8,2,192,.fake3
	.globl	_qep
	.word	IS4,_foc
	.word	0
	.word	0
	.word	0
	.word	8192
	.word	0
	.word	0
	.word	8192
	.word	0
	.word	5376
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	_svgendq_calc+0
	.word	0
	.word	0
	.word	0
	.word	15883
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	32767
	.word	-32768
	.word	0
	.word	0
	.word	4194
	.word	30421
	.word	328
	.word	0
	.word	_pid_reg3_calc+0
	.word	0
	.word	0
	.word	0
	.word	15883
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	32767
	.word	-32768
	.word	0
	.word	0
	.word	4194
	.word	30421
	.word	328
	.word	0
	.word	_pid_reg3_calc+0
	.word	0
	.word	0
	.word	0
	.word	15883
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	32767
	.word	-32768
	.word	0
	.word	0
	.word	4194
	.word	30421
	.word	328
	.word	0
	.word	_pid_reg3_calc+0
	.word	0
	.word	64
	.word	-32768
	.word	32767
	.word	0
	.word	0
	.word	0
	.word	_rmp_cntl_calc+0
	.word	16383
	.word	1000
	.word	0
	.word	16383
	.word	0
	.word	16383
	.word	_rampgen_calc+0
IS4	.set	106

	.sym	_foc,_foc,8,2,1696,.fake14
	.globl	_foc
	.word	IS5,_dac
	.word	768
	.word	768
	.word	768
	.word	768
	.word	2000
	.word	_F24X_EVM_DAC_Update+0
IS5	.set	6

	.sym	_dac,_dac,8,2,96,.fake0
	.globl	_dac
	.word	IS6,_wdog
	.word	_F24x_WD_Disable+0
	.word	_F24x_WD_ResetCounter+0
IS6	.set	2

	.sym	_wdog,_wdog,8,2,32,.fake2
	.globl	_wdog
	.word	IS7,_ilg2
	.word	8191
	.word	0
	.word	0
	.word	8191
	.word	0
	.word	0
	.word	0
	.word	1
	.word	_F2407_leg2_drv_init+0
	.word	_F2407_leg2_drv_read+0
IS7	.set	10

	.sym	_ilg2,_ilg2,8,2,160,.fake5
	.globl	_ilg2
	.word	IS8,_drive
	.word	0
	.word	_F24xx_drive_drv_init+0
	.word	_F24xx_drive_drv_calc+0
IS8	.set	3

	.sym	_drive,_drive,8,2,48,.fake15
	.globl	_drive
	.globl	_isr_ticker
	.text

⌨️ 快捷键说明

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