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

📄 bldcsensor.asm

📁 TI公司的DSP(LF2407A)编写的有霍尔位置传感器的无刷直流电机控制程序,内含子程序说明
💻 ASM
📖 第 1 页 / 共 2 页
字号:
*******************************************************
* TMS320C24xx ANSI C Codegen Version 7.04       
*******************************************************
;	dspac -i../src -v2xx -iD:/CCStudio_v3.1/c2400/cgtools/include bldcsensor.c C:\DOCUME~1\liuping\LOCALS~1\Temp\bldcsensor.if 
;	dspopt NOT RUN
;	dspcg -o -v2xx -o C:\DOCUME~1\liuping\LOCALS~1\Temp\bldcsensor.if C:\DOCUME~1\liuping\LOCALS~1\Temp\bldcsensor.asm C:\DOCUME~1\liuping\LOCALS~1\Temp\bldcsensor.tmp 
	.port
	.bss	_SpeedRef,1,1
	.bss	_CurrentSet,1
	.bss	_VirtualTimer,1
	.bss	_ILoopFlag,1
	.bss	_SpeedLoopFlag,1
	.bss	_DFuncDesired,1
	.bss	_speedtime,2,1
	.bss	_ACTRX1,8
	.bss	_ACTRX,8
	.bss	_disp_refresh,1
	.bss	_runled,1
	.bss	_COM,1
	.bss	_keycounter,1
	.bss	_key,1
	.bss	_TabShift,1
	.bss	_wdog,2
	.bss	_pid1_idc,13
	.bss	_pid1_spd,13
	.bss	_pwm1,6
	.bss	_adc1,11
	.bss	_hall1,9
	.bss	_rc1,8
	.bss	_rmp2,7
	.bss	_speed1,12
	.bss	_phantom_count$1,1
	.bss	_isr_ticker,1
	.bss	_HallValue,1
	.bss	_duty,1
	.bss	_speedcount,1
	.file	"bldcsensor.c"
	.file	"../src\regs240x.h"
	.globl	_portffff
	.globl	_portff0f
	.globl	_port0
	.globl	_port1
	.globl	_port2
	.globl	_port3
	.globl	_port4
	.file	"../src\sysvecs.h"
 		 .include "..\src\c200mnrt.i"				
 		 .include "..\src\x24x.h"  
       	 .sect   "vectors"                              		
       	 .ref    _c_int0                                  		
       	 B       _c_int0         ;00h reset               		
       	 B       _phantom        ;02h INT1                		
       	 B       _phantom        ;04h INT2                		
       	 B       _c_int03        ;06h INT3                		
       	 B       _phantom        ;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	"../src\pid2.h"

	.stag	.fake0,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,.fake0
	.sym	_PID2_handle,0,24,13,16,.fake0
	.globl	_pid2_calc
	.file	"../src\rmp2cntl.h"

	.stag	.fake1,112
	.member	_DesiredInput,0,4,8,16
	.member	_Ramp2Max,16,4,8,16
	.member	_Ramp2Min,32,4,8,16
	.member	_Ramp2DelayCount,48,4,8,16
	.member	_Ramp2Delay,64,4,8,16
	.member	_Out,80,4,8,16
	.member	_calc,96,144,8,16
	.eos
	.sym	_RMP2,0,8,13,112,.fake1
	.sym	_RMP2_handle,0,24,13,16,.fake1
	.globl	_rmp2_cntl_calc
	.file	"../src\speed_pr.h"

	.stag	.fake2,192
	.member	_NewTimeStamp,0,4,8,16
	.member	_OldTimeStamp,16,4,8,16
	.member	_TimeStamp,32,4,8,16
	.member	_SpeedScaler,48,4,8,16
	.member	_EventPeriod,64,4,8,16
	.member	_InputSelect,80,4,8,16
	.member	_Speed,96,5,8,32
	.member	_BaseRpm,128,4,8,16
	.member	_SpeedRpm,144,4,8,16
	.member	_motorpairs,160,4,8,16
	.member	_calc,176,144,8,16
	.eos
	.sym	_SPEED_MEAS_CAP,0,8,13,192,.fake2
	.sym	_SPEED_MEAS_CAP_handle,0,24,13,16,.fake2
	.globl	_speed_prd_calc
	.file	"../src\rmp_cntl.h"

	.stag	.fake3,128
	.member	_TargetValue,0,4,8,16
	.member	_RampDelayMax,16,4,8,16
	.member	_RampLowLimit,32,4,8,16
	.member	_RampHighLimit,48,4,8,16
	.member	_RampDelayCount,64,4,8,16
	.member	_SetpointValue,80,4,8,16
	.member	_EqualFlag,96,4,8,16
	.member	_calc,112,148,8,16
	.eos
	.sym	_RMPCNTL,0,8,13,128,.fake3
	.sym	_RMPCNTL_handle,0,24,13,16,.fake3
	.globl	_rmp_cntl_calc
	.file	"../src\F2407BLDCPWM.h"

	.stag	.fake4,96
	.member	_CmtnPointer,0,4,8,16
	.member	_MfuncPeriod,16,4,8,16
	.member	_PeriodMax,32,4,8,16
	.member	_DutyFunc,48,4,8,16
	.member	_init,64,144,8,16
	.member	_update,80,144,8,16
	.eos
	.sym	_PWMGEN,0,8,13,96,.fake4
	.sym	_PWMGEN_handle,0,24,13,16,.fake4
	.globl	_F2407_BLDC_PWM_Init
	.globl	_F2407_BLDC_PWM_Update
	.file	"../src\f2407hall3.h"

	.stag	.fake5,144
	.member	_HallMap,0,52,8,64,,4
	.member	_CapFlag,64,4,8,16
	.member	_HallMapPointer,80,4,8,16
	.member	_tab,96,4,8,16
	.member	_init,112,144,8,16
	.member	_read,128,144,8,16
	.eos
	.sym	_HALL3,0,8,13,144,.fake5
	.sym	_HALL3_handle,0,24,13,16,.fake5
	.globl	_F2407_EV2_HALL3_Init
	.globl	_F2407_EV2_HALL3_Read
	.file	"../src\F2407ADC.h"

	.stag	.fake6,176
	.member	_Ch1Gain,0,4,8,16
	.member	_Ch2Gain,16,4,8,16
	.member	_Ch3Gain,32,4,8,16
	.member	_Ch4Gain,48,4,8,16
	.member	_Ch1Out,64,4,8,16
	.member	_Ch2Out,80,4,8,16
	.member	_Ch3Out,96,4,8,16
	.member	_Ch4Out,112,4,8,16
	.member	_ChSelect,128,14,8,16
	.member	_init,144,144,8,16
	.member	_read,160,144,8,16
	.eos
	.sym	_ADCVALS,0,8,13,176,.fake6
	.sym	_ADCVALS_handle,0,24,13,16,.fake6
	.globl	_F2407_ADC_Init
	.globl	_F2407_ADC_Read
	.file	"../src\F24X_WD.H"

	.stag	.fake7,32
	.member	_disable,0,148,8,16
	.member	_reset,16,148,8,16
	.eos
	.sym	_WATCHDOG,0,8,13,32,.fake7
	.sym	_WATCHDOG_handle,0,24,13,16,.fake7
	.globl	_F24x_WD_ResetCounter
	.globl	_F24x_WD_Disable
	.file	"../src\bldcSensor.h"
	.globl	_Iref_disp
	.globl	_Ifb_disp
	.globl	_Vref_disp
	.globl	_Vfb_disp
	.globl	_fpwm_disp
	.globl	_Dpwm_disp
	.globl	_mod6_disp
	.globl	_Hmap_disp
	.globl	_prop_int
	.file	"bldcsensor.c"
	.globl	_RstSystem
	.globl	_rtmon_init
	.globl	_c_int03
	.globl	_phantom
	.globl	_GetSpeed

	.sect	".cinit"
	.word	1,_SpeedRef
	.word	1641

	.sym	_SpeedRef,_SpeedRef,4,2,16
	.globl	_SpeedRef
	.word	1,_CurrentSet
	.word	150

	.sym	_CurrentSet,_CurrentSet,4,2,16
	.globl	_CurrentSet
	.word	1,_VirtualTimer
	.word	0

	.sym	_VirtualTimer,_VirtualTimer,4,2,16
	.globl	_VirtualTimer
	.word	1,_ILoopFlag
	.word	0

	.sym	_ILoopFlag,_ILoopFlag,4,2,16
	.globl	_ILoopFlag
	.word	1,_SpeedLoopFlag
	.word	0

	.sym	_SpeedLoopFlag,_SpeedLoopFlag,4,2,16
	.globl	_SpeedLoopFlag
	.word	1,_DFuncDesired
	.word	12287

	.sym	_DFuncDesired,_DFuncDesired,4,2,16
	.globl	_DFuncDesired
	.word	2,_speedtime
	.long	0

	.sym	_speedtime,_speedtime,5,2,32
	.globl	_speedtime
	.globl	_speedcount
	.word	IS1,_ACTRX1
	.word	4095
	.word	3902
	.word	1022
	.word	1007
	.word	4067
	.word	3827
	.word	3647
	.word	4095
IS1	.set	8

	.sym	_ACTRX1,_ACTRX1,62,2,128,,8
	.globl	_ACTRX1
	.word	IS2,_ACTRX
	.word	4095
	.word	4091
	.word	4091
	.word	4031
	.word	4031
	.word	3071
	.word	3071
	.word	4095
IS2	.set	8

	.sym	_ACTRX,_ACTRX,62,2,128,,8
	.globl	_ACTRX
	.word	1,_disp_refresh
	.word	0

	.sym	_disp_refresh,_disp_refresh,14,2,16
	.globl	_disp_refresh
	.word	1,_runled
	.word	-1

	.sym	_runled,_runled,4,2,16
	.globl	_runled
	.word	1,_COM
	.word	65280

	.sym	_COM,_COM,14,2,16
	.globl	_COM
	.word	1,_keycounter
	.word	0

	.sym	_keycounter,_keycounter,4,2,16
	.globl	_keycounter
	.word	1,_key
	.word	0

	.sym	_key,_key,4,2,16
	.globl	_key
	.globl	_HallValue
	.word	1,_TabShift
	.word	0

	.sym	_TabShift,_TabShift,4,2,16
	.globl	_TabShift
	.globl	_duty
	.word	IS3,_wdog
	.word	_F24x_WD_Disable+0
	.word	_F24x_WD_ResetCounter+0
IS3	.set	2

	.sym	_wdog,_wdog,8,2,32,.fake7
	.globl	_wdog
	.word	IS4,_pid1_idc
	.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	_pid2_calc+0
IS4	.set	13

	.sym	_pid1_idc,_pid1_idc,8,2,208,.fake0
	.globl	_pid1_idc
	.word	IS5,_pid1_spd
	.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	_pid2_calc+0
IS5	.set	13

	.sym	_pid1_spd,_pid1_spd,8,2,208,.fake0
	.globl	_pid1_spd
	.word	IS6,_pwm1
	.word	0
	.word	32767
	.word	2000
	.word	0
	.word	_F2407_BLDC_PWM_Init+0
	.word	_F2407_BLDC_PWM_Update+0
IS6	.set	6

	.sym	_pwm1,_pwm1,8,2,96,.fake4
	.globl	_pwm1
	.word	IS7,_adc1
	.word	8191
	.word	8191
	.word	8191
	.word	8191
	.word	0
	.word	0
	.word	0
	.word	0
	.word	28027
	.word	_F2407_ADC_Init+0
	.word	_F2407_ADC_Read+0
IS7	.set	11

	.sym	_adc1,_adc1,8,2,176,.fake6
	.globl	_adc1
	.word	IS8,_hall1
	.word	0
	.word	0
	.word	0
	.word	0
	.word	-1
	.word	0
	.word	0
	.word	_F2407_EV2_HALL3_Init+0
	.word	_F2407_EV2_HALL3_Read+0
IS8	.set	9

	.sym	_hall1,_hall1,8,2,144,.fake5
	.globl	_hall1
	.word	IS9,_rc1
	.word	0
	.word	5
	.word	-32768
	.word	32767
	.word	0
	.word	0
	.word	0
	.word	_rmp_cntl_calc+0
IS9	.set	8

	.sym	_rc1,_rc1,8,2,128,.fake3
	.globl	_rc1
	.word	IS10,_rmp2
	.word	0
	.word	32767
	.word	15
	.word	0
	.word	50
	.word	0
	.word	_rmp2_cntl_calc+0
IS10	.set	7

	.sym	_rmp2,_rmp2,8,2,112,.fake1
	.globl	_rmp2
	.word	IS11,_speed1
	.word	0
	.word	0
	.word	0
	.word	400
	.word	0
	.word	0
	.long	0
	.word	6000
	.word	0
	.word	0
	.word	_speed_prd_calc+0
IS11	.set	12

	.sym	_speed1,_speed1,8,2,192,.fake2
	.globl	_speed1
	.globl	_isr_ticker
	.text

	.sym	_main,_main,32,2,0
	.globl	_main

	.func	61
;>>>> 	void main()
******************************************************
* FUNCTION DEF : _main
******************************************************
_main:
	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,3
	LAR	AR0,*0+

	.line	6
;>>>> 	    RstSystem();
;>>>> 	// Initialize PWM module
	CALL	_RstSystem
	.line	8
;>>>> 	    pwm1.DutyFunc = DFuncDesired;                            // DutyFunc = Q15 
	LDPK	_DFuncDesired
	BLDD	_DFuncDesired,#_pwm1+3
	.line	9
;>>>> 	    pwm1.init(&pwm1);         								 /* pwm driver initialization */
;>>>> 	// Initialize ADC module
	LALK	_pwm1+0
	SACL	*+
	LAC	_pwm1+4
	CALA
	MAR	*-
	.line	11
;>>>> 	    adc1.ChSelect = 0x6666;   		//母线电流通道AD06
	LDPK	_adc1+8
	SPLK	#26214,_adc1+8
	.line	12
;>>>> 		adc1.init(&adc1);
;>>>> 	// Initialize the SPEED_PR module (150 MHz, N = 1 event period/rev)
	LALK	_adc1+0
	SACL	*+
	LAC	_adc1+9
	CALA
	MAR	*-
	.line	14
;>>>> 	 	speed1.InputSelect = 0;			//?
	LACK	0
	LDPK	_speed1+5
	SACL	_speed1+5
	.line	15
;>>>> 	 	speed1.BaseRpm = 6000;			//120*(BASE_FREQ/P);
	SPLK	#6000,_speed1+8
	.line	16
;>>>> 	 	speed1.SpeedScaler = 400;		//(Uint32)(ISR_FREQUENCY/(1*BASE_FREQ*0.001));BASE_FREQ=100;ISR_FREQUENCY=40(K)
	SPLK	#400,_speed1+3
	.line	17
;>>>> 		speed1.motorpairs= 23;
;>>>> 	// Initialize RMPCNTL module
	LACK	23
	SACL	_speed1+10
	.line	19

⌨️ 快捷键说明

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