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

📄 rmp2cntl.asm

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

	.stag	.fake0,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,.fake0
	.sym	_RMP2_handle,0,24,13,16,.fake0
	.globl	_rmp2_cntl_calc
	.file	"rmp2cntl.c"
	.text

	.sym	_rmp2_cntl_calc,_rmp2_cntl_calc,32,2,0
	.globl	_rmp2_cntl_calc

	.func	11
;>>>> 	void rmp2_cntl_calc(RMP2 *v)
******************************************************
* FUNCTION DEF : _rmp2_cntl_calc
******************************************************
_rmp2_cntl_calc:

LF1	.set	0

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

	.sym	_v,-3+LF1,24,9,16,.fake0
	.line	2
	.line	4
;>>>> 	   if (v->Out != v->DesiredInput)
	LARK	AR2,-3+LF1
	MAR	*0+
	LAR	AR3,* 
	LAR	AR4,* ,AR4
	SSXM
	ADRK	5
	LAC	* ,AR3
	SUB	* 
	BZ	L1
	.line	7
;>>>> 	      v->Ramp2DelayCount++;
	ADRK	3
	LAC	* 
	ADDK	1
	SACL	* ,AR4
	.line	9
;>>>> 	      if (v->Ramp2DelayCount >= v->Ramp2Delay)   
	SBRK	2
	LAC	* ,AR3
	MAR	*+
	SUB	* 
	BLZ	L1
	.line	11
;>>>> 	        v->Ramp2DelayCount = 0; 
	LACK	0
	MAR	*-
	SACL	* ,AR4
	.line	13
;>>>> 	       if (v->Out < v->DesiredInput) 
	ADRK	2
	LAC	* ,AR3
	SBRK	3
	SUB	* 
	BGEZ	L3
	.line	15
;>>>> 	         v->Out++;
	ADRK	5
	LAC	* 
	ADDK	1
	SACL	* ,AR4
	.line	16
;>>>> 	         if (v->Out > v->Ramp2Max) 
	LAC	* ,AR3
	SBRK	4
	SUB	* 
	BLEZ	L1
	.line	17
;>>>> 	            v->Out = v->Ramp2Max;
;>>>> 	        else
	LAC	* ,AR4
	SACL	* 
	B	L1
L3:
	.line	21
;>>>> 	         v->Out--;
	ADRK	5
	LAC	* 
	SUBK	1
	SACL	* ,AR4
	.line	22
;>>>> 	         if (v->Out < v->Ramp2Min) 
	LAC	* ,AR3
	SBRK	3
	SUB	* 
	BGEZ	L1
	.line	23
;>>>> 	            v->Out = v->Ramp2Min;
	LAC	* ,AR4
	SACL	* 
L1:
EPI0_1:
	.line	27
	MAR	* ,AR1
	SBRK	2
	LAR	AR0,*-
	PSHD	*
	RET

	.endfunc	37,000000000H,1
	.end

⌨️ 快捷键说明

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