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

📄 f2407bldcpwm.asm

📁 TI公司的DSP(LF2407A)编写的有霍尔位置传感器的无刷直流电机控制程序,内含子程序说明
💻 ASM
字号:
*******************************************************
* TMS320C24xx ANSI C Codegen Version 7.04       
*******************************************************
;	dspac -i../src -v2xx -iD:/CCStudio_v3.1/c2400/cgtools/include f2407bldcpwm.c C:\DOCUME~1\liuping\LOCALS~1\Temp\f2407bldcpwm.if 
;	dspopt NOT RUN
;	dspcg -o -v2xx -o C:\DOCUME~1\liuping\LOCALS~1\Temp\f2407bldcpwm.if C:\DOCUME~1\liuping\LOCALS~1\Temp\f2407bldcpwm.asm C:\DOCUME~1\liuping\LOCALS~1\Temp\f2407bldcpwm.tmp 
	.port
	.file	"f2407bldcpwm.c"
	.file	"../src\regs240x.h"
	.globl	_portffff
	.globl	_portff0f
	.globl	_port0
	.globl	_port1
	.globl	_port2
	.globl	_port3
	.globl	_port4
	.file	"../src\F2407BLDCPWM.h"

	.stag	.fake0,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,.fake0
	.sym	_PWMGEN_handle,0,24,13,16,.fake0
	.globl	_F2407_BLDC_PWM_Init
	.globl	_F2407_BLDC_PWM_Update
	.file	"f2407bldcpwm.c"
	.text

	.sym	_F2407_BLDC_PWM_Init,_F2407_BLDC_PWM_Init,32,2,0
	.globl	_F2407_BLDC_PWM_Init

	.func	20
;>>>> 	void F2407_BLDC_PWM_Init(PWMGEN *p) 
******************************************************
* FUNCTION DEF : _F2407_BLDC_PWM_Init
******************************************************
_F2407_BLDC_PWM_Init:

LF1	.set	0

	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,1
	LAR	AR0,*0+,AR3

	.sym	_p,-3+LF1,24,9,16,.fake0
	.line	2
;>>>> 	{       SCSR1|=0x0008;                      /* Turn EVB Clocks on            */
	LARK	AR3,28696
	LACK	8
	OR	* 
	SACL	* ,AR2
	.line	3
;>>>> 	        T3PR=p->PeriodMax;                  /* Init Timer 3 period Register  */
	LARK	AR2,-3+LF1
	MAR	*0+
	LAR	AR4,* ,AR4
	LARK	AR5,29955
	SSXM
	ADRK	2
	LAC	* ,AR5
	SACL	*+
	.line	4
;>>>> 	        T3CON=BLDCPWM_INIT_STATE;           /* Init PWM Operation         */
	SPLK	#-28608,* 
	.line	6
;>>>> 	        ACTRB=0x0fff;                
	ADRK	15
	SPLK	#4095,* 
	.line	7
;>>>> 	        GPTCONB=0x0000;
	LACK	0
	SBRK	19
	SACL	* 
	.line	8
;>>>> 	        COMCONB=0x0a200;
	ADRK	17
	SPLK	#-24064,* ,AR3
	.line	10
;>>>> 	        MCRC=MCRC|0x007E;           	    /* Set up the full compare PWM pins */
	LACK	126
	ADRK	124
	OR	* 
	SACL	* ,AR1
EPI0_1:
	.line	12
	SBRK	2
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	31,000000000H,1

	.sym	_F2407_BLDC_PWM_Update,_F2407_BLDC_PWM_Update,32,2,0
	.globl	_F2407_BLDC_PWM_Update

	.func	33
;>>>> 	void F2407_BLDC_PWM_Update(PWMGEN *p) 
******************************************************
* FUNCTION DEF : _F2407_BLDC_PWM_Update
******************************************************
_F2407_BLDC_PWM_Update:

LF2	.set	0

	POPD	*+
	SAR	AR0,*+
	SAR	AR1,*
	LARK	AR0,5
	LAR	AR0,*0+,AR2

	.sym	_p,-3+LF2,24,9,16,.fake0
	.sym	_Tmp,1,5,1,32
	.sym	_GPR0_BLDC_PWM,3,4,1,16
	.sym	_tab,4,4,1,16
	.line	2
;>>>> 		 long Tmp;
;>>>> 		 int GPR0_BLDC_PWM,tab;
;>>>> 	//	 unsigned int pwmtemp;
;>>>> 	// Convert "Period" (Q15) modulation function to Q0
;>>>> 	//    Tmp = (long)p->PeriodMax*(long)p->MfuncPeriod;   // Q15 = Q0*Q15
;>>>> 	//    Period = (int)(Tmp>>15);                         // Q15 -> Q0 (Period)
	.line	36
;>>>> 	    GPR0_BLDC_PWM = p->DutyFunc;
;>>>> 	//	pwmtemp = (unsigned int)GPR0_BLDC_PWM+1;
;>>>> 	// Convert "DutyFunc" or "GPR0_BLDC_PWM" (Q15) duty modulation function to Q0
	LARK	AR2,-3+LF2
	MAR	*0+
	LAR	AR3,* ,AR3
	SSXM
	ADRK	3
	LAC	* ,AR2
	ADRK	6-LF2
	SACL	* 
	.line	39
;>>>> 	   	Tmp = (long)p->PeriodMax*(long)GPR0_BLDC_PWM;     // Q15 = Q0*Q15
	LT	* ,AR3
	MAR	*-
	MPY	* ,AR2
	SBRK	2
	SPL	*+
	SPH	*-
	.line	49
;>>>> 	    	GPR0_BLDC_PWM = (int)(Tmp>>15);             // Q15 -> Q0
	RSXM
	LAC	*+,1,AR0
	SACH	*,AR2
	SSXM
	LAC	*+,1,AR0
	OR	*,AR2
	SACL	* ,AR4
	.line	50
;>>>> 	    	CMPR4 = GPR0_BLDC_PWM;
	LARK	AR4,29975
	SACL	*+
	.line	51
;>>>> 	    	CMPR5 = GPR0_BLDC_PWM;
	SACL	*+
	.line	52
;>>>> 	    	CMPR6 = GPR0_BLDC_PWM;
	SACL	* ,AR1
EPI0_2:
	.line	54
	SBRK	6
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	86,000000000H,5
	.end

⌨️ 快捷键说明

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