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

📄 bldc.asm

📁 直流无刷电机控制程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
*******************************************************
* TMS320C24xx ANSI C Codegen Version 7.04       
*******************************************************
;	dspac -i../../../../rtmon/ -i../include -i../../../../lib/dmclib/clib/include -i../../../../lib/drvlib/clib/include -v2xx -iC:/C
;	dspopt NOT RUN
;	dspcg -o -v2xx -o C:\DOCUME~1\jsg\LOCALS~1\Temp\bldc.if C:\DOCUME~1\jsg\LOCALS~1\Temp\bldc.asm C:\DOCUME~1\jsg\LOCALS~1\Temp\bldc.tmp 
	.port
	.bss	_dac,6,1
	.bss	_pwm,6
	.bss	_adc,11
	.bss	_bldc,61
	.bss	_wdog,2
	.bss	_phantom_count$1,1
	.bss	_isr_ticker,1
	.file	"bldc.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       _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	"../../../../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\F2407BLDCPWM.H"

	.stag	.fake1,96
	.member	_cmtn_ptr_bd,0,4,8,16
	.member	_mfunc_p,16,4,8,16
	.member	_period_max,32,4,8,16
	.member	_d_func,48,4,8,16
	.member	_init,64,148,8,16
	.member	_update,80,148,8,16
	.eos
	.sym	_PWMGEN,0,8,13,96,.fake1
	.sym	_PWMGEN_handle,0,24,13,16,.fake1
	.globl	_F2407_BLDC_PWM_Init
	.globl	_F2407_BLDC_PWM_Update
	.file	"../../../../lib/drvlib/clib/include\F2407ADC.H"

	.stag	.fake2,176
	.member	_c1_gain,0,4,8,16
	.member	_c2_gain,16,4,8,16
	.member	_c3_gain,32,4,8,16
	.member	_c4_gain,48,4,8,16
	.member	_c1_out,64,4,8,16
	.member	_c2_out,80,4,8,16
	.member	_c3_out,96,4,8,16
	.member	_c4_out,112,4,8,16
	.member	_a4_ch_sel,128,4,8,16
	.member	_init,144,148,8,16
	.member	_update,160,148,8,16
	.eos
	.sym	_ADCVALS,0,8,13,176,.fake2
	.sym	_ADCVALS_handle,0,24,13,16,.fake2
	.globl	_F2407_ADC_Init
	.globl	_F2407_ADC_Update
	.file	"../../../../lib/drvlib/clib/include\F24X_WD.H"

	.stag	.fake3,32
	.member	_disable,0,148,8,16
	.member	_reset,16,148,8,16
	.eos
	.sym	_WATCHDOG,0,8,13,32,.fake3
	.sym	_WATCHDOG_handle,0,24,13,16,.fake3
	.globl	_F24x_WD_ResetCounter
	.globl	_F24x_WD_Disable
	.file	"../../../../lib/dmclib/clib/include\mod6.h"

	.stag	.fake4,48
	.member	_trig_in,0,4,8,16
	.member	_cntr,16,4,8,16
	.member	_calc,32,148,8,16
	.eos
	.sym	_MOD6CNT,0,8,13,48,.fake4
	.sym	_MOD6CNT_handle,0,24,13,16,.fake4
	.globl	_mod6cnt_calc
	.file	"../../../../lib/dmclib/clib/include\pid2.h"

	.stag	.fake5,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,.fake5
	.sym	_PID2_handle,0,24,13,16,.fake5
	.globl	_pid2_calc
	.file	"../../../../lib/dmclib/clib/include\impl.h"

	.stag	.fake6,64
	.member	_period,0,4,8,16
	.member	_out,16,4,8,16
	.member	_skpcnt,32,4,8,16
	.member	_calc,48,148,8,16
	.eos
	.sym	_IMPULSE,0,8,13,64,.fake6
	.sym	_IMPULSE_handle,0,24,13,16,.fake6
	.globl	_impulse_calc
	.file	"../../../../lib/dmclib/clib/include\rmp2.h"

	.stag	.fake7,112
	.member	_max,0,4,8,16
	.member	_min,16,4,8,16
	.member	_dly,32,4,8,16
	.member	_delay_cntr,48,4,8,16
	.member	_desired,64,4,8,16
	.member	_out,80,4,8,16
	.member	_calc,96,148,8,16
	.eos
	.sym	_RMP2,0,8,13,112,.fake7
	.sym	_RMP2_handle,0,24,13,16,.fake7
	.globl	_rmp2_calc
	.file	"../../../../lib/dmclib/clib/include\rmp3.h"

	.stag	.fake8,112
	.member	_desired,0,4,8,16
	.member	_dly,16,4,8,16
	.member	_dly_cntr,32,4,8,16
	.member	_min,48,4,8,16
	.member	_out,64,4,8,16
	.member	_done_flg,80,4,8,16
	.member	_calc,96,148,8,16
	.eos
	.sym	_RMP3,0,8,13,112,.fake8
	.sym	_RMP3_handle,0,24,13,16,.fake8
	.globl	_rmp3_calc
	.file	"../../../../lib/dmclib/clib/include\cmtn.h"

	.stag	.fake9,304
	.member	_trig,0,4,8,16
	.member	_va,16,4,8,16
	.member	_vb,32,4,8,16
	.member	_vc,48,4,8,16
	.member	_zc_trig,64,4,8,16
	.member	_ptr_ct,80,4,8,16
	.member	_debug_Bemf,96,4,8,16
	.member	_noise_windowCntr,112,4,8,16
	.member	_d30_doneFlg,128,4,8,16
	.member	_time_stampNew,144,4,8,16
	.member	_time_stampOld,160,4,8,16
	.member	_v_timer,176,4,8,16
	.member	_delay,192,4,8,16
	.member	_dt_taskFlg,208,4,8,16
	.member	_noise_windowMax,224,4,8,16
	.member	_delay_cntr,240,4,8,16
	.member	_cdnw_delta,256,4,8,16
	.member	_nw_dynThold,272,4,8,16
	.member	_calc,288,148,8,16
	.eos
	.sym	_CMTN,0,8,13,304,.fake9
	.sym	_CMTN_handle,0,24,13,16,.fake9
	.globl	_cmtn_trig_calc
	.file	"../include\bldc_ti.h"

	.stag	.fake10,976
	.member	_cmtn_period_target,0,4,8,16
	.member	_cmtn_period_setpt,16,4,8,16
	.member	_ramp_delay,32,4,8,16
	.member	_I_loop_flg,48,4,8,16
	.member	_D_func_desired,64,4,8,16
	.member	_sp_up_done_flg,80,4,8,16
	.member	_current_set,96,4,8,16
	.member	_align_flag,112,4,8,16
	.member	_impl,128,8,8,64,.fake6
	.member	_mod6,192,8,8,48,.fake4
	.member	_rmp3,240,8,8,112,.fake8
	.member	_cmtn,352,8,8,304,.fake9
	.member	_pid2,656,8,8,208,.fake5
	.member	_rmp2,864,8,8,112,.fake7
	.eos
	.sym	_BLDC_TI,0,8,13,976,.fake10
	.sym	_BLDC_TI_handle,0,24,13,16,.fake10
	.globl	_BLDC_TI_Init
	.globl	_BLDC_TI_Run
	.file	"../include\bldc.h"
	.globl	_RstSystem
	.globl	_rtmon_init
	.globl	_c_int03
	.globl	_phantom
	.globl	_time_base_init
	.globl	_evm_pwm_init
	.globl	_update_v_timer
	.file	"bldc.c"

	.sect	".cinit"
	.word	IS1,_dac
	.word	768
	.word	768
	.word	768
	.word	768
	.word	2000
	.word	_F24X_EVM_DAC_Update+0
IS1	.set	6

	.sym	_dac,_dac,8,2,96,.fake0
	.globl	_dac
	.word	IS2,_pwm
	.word	0
	.word	32767
	.word	2000
	.word	0
	.word	_F2407_BLDC_PWM_Init+0
	.word	_F2407_BLDC_PWM_Update+0
IS2	.set	6

	.sym	_pwm,_pwm,8,2,96,.fake1
	.globl	_pwm
	.word	IS3,_adc
	.word	8191
	.word	8191
	.word	8191
	.word	8191
	.word	0
	.word	0
	.word	0
	.word	0
	.word	12816
	.word	_F2407_ADC_Init+0
	.word	_F2407_ADC_Update+0
IS3	.set	11

	.sym	_adc,_adc,8,2,176,.fake2
	.globl	_adc
	.word	IS4,_bldc
	.word	512
	.word	1280
	.word	400
	.word	0
	.word	3072
	.word	0
	.word	101
	.word	15
	.word	4096
	.word	0
	.word	0
	.word	_impulse_calc+0
	.word	0
	.word	0
	.word	_mod6cnt_calc+0
	.word	0
	.word	0
	.word	0
	.word	80
	.word	0
	.word	0
	.word	_rmp3_calc+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	_cmtn_trig_calc+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	_pid2_calc+0
	.word	32752
	.word	15
	.word	80
	.word	0
	.word	0
	.word	0
	.word	_rmp2_calc+0
IS4	.set	61

	.sym	_bldc,_bldc,8,2,976,.fake10
	.globl	_bldc
	.word	IS5,_wdog
	.word	_F24x_WD_Disable+0
	.word	_F24x_WD_ResetCounter+0
IS5	.set	2

	.sym	_wdog,_wdog,8,2,32,.fake3
	.globl	_wdog
	.globl	_isr_ticker
	.text

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

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

	.line	6
;>>>> 	        RstSystem();
	CALL	_RstSystem
	.line	11
;>>>> 	        pwm.init(&pwm);         /* pwm driver initialization */
	LALK	_pwm+0
	SACL	*+
	LDPK	_pwm+4
	LAC	_pwm+4
	CALA
	MAR	*-
	.line	16
;>>>> 	        adc.init(&adc);      /* adc driver initialization */
	LALK	_adc+0
	SACL	*+
	LDPK	_adc+9
	LAC	_adc+9
	CALA
	MAR	*-
	.line	21
;>>>> 	        time_base_init();
;>>>> 	#if (REAL_TIME == TRUE)
	CALL	_time_base_init
	.line	28
;>>>> 	        rtmon_init();      /* Call the monitor init function  */
;>>>> 	#endif /* REAL_TIME==TRUE */
	CALL	_rtmon_init
	.line	34
;>>>> 	        evm_pwm_init();
	CALL	_evm_pwm_init
	.line	42
;>>>> 	        adc.a4_ch_sel = CHANNEL_SETTINGS;
	LDPK	_adc+8
	SPLK	#25923,_adc+8
	.line	48
;>>>> 	        BLDC_TI_Init(&bldc);
	LALK	_bldc+0
	SACL	*+
	CALL	_BLDC_TI_Init
	MAR	*-
	.line	50
;>>>> 	        pwm.d_func = ALIGN_DUTY;
;>>>> 	#if (BUILDLEVEL==LEVEL1)
;>>>> 	        dac.qptr0 = &bldc.impl.out;
;>>>> 	#endif  /* BUILDLEVEL==LEVEL1 */
;>>>> 	#if (BUILDLEVEL==LEVEL2)
;>>>> 	        adc.c1_gain = 0x0800;    /* gain = 0.125 (Q13)              */
;>>>> 	        adc.c2_gain = 0x0800;    /* gain = 0.125 (Q13)              */
;>>>> 	        adc.c3_gain = 0x0800;    /* gain = 0.125 (Q13)              */
;>>>> 	        adc.c4_gain = 0x1fff;    /* gain = 1.0 (Q13)                */
;>>>> 	        dac.qptr0 = &adc.c1_out;
;>>>> 	        dac.qptr1 = &adc.c2_out;
;>>>> 	        dac.qptr2 = &adc.c3_out;
;>>>> 	        dac.qptr3 = &adc.c4_out;
;>>>> 	#endif  /* BUILDLEVEL==LEVEL2 */
;>>>> 	#if (BUILDLEVEL==LEVEL3)
;>>>> 	        adc.c1_gain = 0x0800;    /* gain = 0.125 (Q13)              */
;>>>> 	        adc.c2_gain = 0x0800;    /* gain = 0.125 (Q13)              */
;>>>> 	        adc.c3_gain = 0x0800;    /* gain = 0.125 (Q13)              */
;>>>> 	        adc.c4_gain = 0x1fff;    /* gain = 1.0 (Q13)                */
;>>>> 	        dac.qptr0 = &bldc.cmtn.trig;
;>>>> 	        #if 0
;>>>> 	        dac.qptr1 = &bldc.cmtn.neutral;
;>>>> 	        #endif
;>>>> 	        dac.qptr2 = &bldc.cmtn.zc_trig;
;>>>> 	        dac.qptr3 = &bldc.cmtn.debug_Bemf;
;>>>> 	#endif  /* BUILDLEVEL==LEVEL3 */
;>>>> 	#if (BUILDLEVEL==LEVEL4)
;>>>> 	        adc.c1_gain = 0x0800;    /* gain = 0.125 (Q13)              */
;>>>> 	        adc.c2_gain = 0x0800;    /* gain = 0.125 (Q13)              */
;>>>> 	        adc.c3_gain = 0x0800;    /* gain = 0.125 (Q13)              */
;>>>> 	        adc.c4_gain = 0x1fff;    /* gain = 1.0 (Q13)                */
;>>>> 	        dac.qptr0 = &adc.c1_out;
;>>>> 	        dac.qptr1 = &adc.c2_out;
;>>>> 	        dac.qptr2 = &adc.c3_out;
;>>>> 	        dac.qptr3 = &adc.c4_out;
;>>>> 	#endif  /* BUILDLEVEL==LEVEL4 */
;>>>> 	#if (BUILDLEVEL==LEVEL5)
	LDPK	_pwm+3
	SPLK	#3072,_pwm+3
	.line	145
;>>>> 	        adc.c1_gain = 0x0800;    /* gain = 0.125 (Q13)              */
	SPLK	#2048,_adc
	.line	146
;>>>> 	        adc.c2_gain = 0x0800;    /* gain = 0.125 (Q13)              */
	SPLK	#2048,_adc+1
	.line	147
;>>>> 	        adc.c3_gain = 0x0800;    /* gain = 0.125 (Q13)              */
	SPLK	#2048,_adc+2
	.line	148
;>>>> 	        adc.c4_gain = 0x1fff;    /* gain = 1.0 (Q13)                */
	SPLK	#8191,_adc+3
	.line	150
;>>>> 	        bldc.current_set = 0x0065;
	LACK	101
	SACL	_bldc+6
	.line	156
;>>>> 	        dac.qptr0 = &adc.c1_out;
	LALK	_adc+4
	SACL	_dac
	.line	157
;>>>> 	        dac.qptr1 = &adc.c2_out;
	LALK	_adc+5
	SACL	_dac+1
	.line	158
;>>>> 	        dac.qptr2 = &adc.c3_out;
	LALK	_adc+6
	SACL	_dac+2
	.line	159
;>>>> 	        dac.qptr3 = &adc.c4_out;
;>>>> 	#endif  /* BUILDLEVEL==LEVEL5 */
	LALK	_adc+7
	SACL	_dac+3
	.line	165
;>>>> 	 enable_ints();     /* set off the system running */
;>>>> 	        while(1)             /* Nothing running in the background at present */
	CALL	_enable_ints
L1:
	.line	174
	B	L1
	.endfunc	269,000000000H,1

	.sym	_c_int03,_c_int03,32,2,0
	.globl	_c_int03

⌨️ 快捷键说明

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