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

📄 speed_pr.asm

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

	.stag	.fake0,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,.fake0
	.sym	_SPEED_MEAS_CAP_handle,0,24,13,16,.fake0
	.globl	_speed_prd_calc
	.file	"speed_pr.c"
	.text

	.sym	_speed_prd_calc,_speed_prd_calc,32,2,0
	.globl	_speed_prd_calc

	.func	16
;>>>> 	void speed_prd_calc(SPEED_MEAS_CAP *v)
******************************************************
* FUNCTION DEF : _speed_prd_calc
******************************************************
_speed_prd_calc:

LF1	.set	0

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

	.sym	_v,-3+LF1,24,9,16,.fake0
	.sym	_Temp1,1,5,1,32
	.sym	_Temp2,3,5,1,32
	.sym	_SpeedTemp,5,6,1,32
	.line	2
;>>>> 	   long Temp1;
;>>>> 	   long Temp2;
;>>>> 	   float SpeedTemp;
	.line	16
;>>>> 		  	 Temp1 = (long)(v->SpeedScaler)*(long)(v->BaseRpm);
	LARK	AR2,-3+LF1
	MAR	*0+
	LAR	AR3,* 
	LAR	AR4,* ,AR3
	ADRK	8
	LT	* ,AR4
	ADRK	3
	MPY	* ,AR2
	ADRK	4-LF1
	SPL	*+
	SPH	* ,AR3
	.line	17
;>>>> 		  	 Temp2 = (long)(v->EventPeriod)*(long)(v->motorpairs);
	ADRK	2
	LT	* ,AR4
	MAR	*+
	MPY	* ,AR2
	MAR	*+
	SPL	*+
	SPH	*-
	.line	18
;>>>> 			 SpeedTemp = (float)Temp1/((float)Temp2);
	ZALS	*+
	ADDH	* ,AR1
	CALL	F$$LTOF
	MAR	* ,AR2
	SBRK	3
	ZALS	*+
	ADDH	* ,AR1
	CALL	F$$LTOF
	CALL	F$$DIV
	MAR	*-
	ZALH	*-
	ADDS	* ,AR2
	ADRK	3
	SACL	*+
	SACH	*-
	.line	19
;>>>> 	 	 	 v->SpeedRpm =(int)SpeedTemp; 
	LAC	*+,AR1
	SACL	*+,AR2
	LAC	* ,AR1
	SACL	*+
	CALL	F$$FTOI
	MAR	* ,AR3
	MAR	*-
	SACL	* ,AR4
	.line	20
;>>>> 			 v->Speed = ((long)v->SpeedRpm*32768)/((long)v->BaseRpm);
	SSXM
	ADRK	5
	LAC	* ,AR1
	SACL	*+
	SACH	*+
	LACK	15
	SACL	* 
	CALL	L$$SL
	MAR	* ,AR2
	MAR	*+
	SACL	*+
	SACH	*-,AR3
	SSXM
	MAR	*-
	LAC	* ,AR1
	SACL	*+
	SACH	*+,AR2
	ZALS	*+
	ADDH	* ,AR1
	CALL	L$$DIVS
	MAR	* ,AR3
	SBRK	2
	SACL	*+
	SACH	*-,AR1
EPI0_1:
	.line	22
	SBRK	10
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	37,000000000H,9
*****************************************************
* UNDEFINED REFERENCES                              *
*****************************************************
	.global	F$$LTOF
	.global	F$$DIV
	.global	F$$FTOI
	.global	L$$SL
	.global	L$$DIVS
	.end

⌨️ 快捷键说明

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