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

📄 volt_freq.asm

📁 f2407:电机控制
💻 ASM
字号:
;--------------------------------
;function name: void volt_freq(vhz_volt_struct *p, unsigned int freq);
;typedef struct 
;	{	unsigned int slope;		Q12, slope between voltage and frequence
;		int uout;				Q12, return of function
;	}vhz_volt_struct;



		.def _volt_freq
		.global _volt_freq
freqmin	.set 1111h				; minimum frequence, below which uout equate to umin, 20Hz
freqmax .set 3333h				; 60hz :电机额定频率(2^16*额定频率(60HZ)/200=3333h)maximum frequence, above which uout equate to umax,60Hz
;freqmax .set 2AAAh      		; 50hz maximum frequence, above which uout equate to umax, 50Hz
;freqmax .set 3BBBh      		; 70hz maximum frequence, above which uout equate to umax, 70Hz

;umin	.set 492h				; 70hz freqmin*umax/freqmax=umin最小频率对应的输出电压 minimum uout
;umin	.set 666h				; 50hz freqmin*umax/freqmax=umin最小频率对应的输出电压 minimum uout
umin	.set 555h				; 60hz freqmin*umax/freqmax=umin最小频率对应的输出电压 minimum uout
umax	.set 01000h				; maximum uout 额定电压的标么值
_volt_freq_frame .set 1			; size of local frame  

_volt_freq
		POPD	*+
		SAR		AR0,*+
		SAR		AR1,*    
		LAR		AR0,#_volt_freq_frame
		LAR		AR0,*0+,AR0
		LAR		AR2,*,AR2 		;C compatible
								;STACK:freq/ *p/address/AR0/AR1
								;ARP:AR2, AR0:AR1, AR2:AR1
		CLRC 	SXM
		SBRK	#3    			;AR2:*P
		LAR		AR3,*-			;ARP:AR2, AR0:AR1, AR2:freq, AR3:slope
		LACC	#freqmin		;freqmin-->ACC
		SUBS	* 
		BCND	lowfreq,GEQ		
		LACC	#freqmax		;freqmax-->ACC
		SUBS	*
		BCND	highfreq,LEQ	
		LT		*,AR3
		MPYU    *+				;frequence multiply slope
		PAC 
		SACH	*,4,AR1         ;ARP:AR1
								;uout=slope*freq
		B		volt_freq_end
lowfreq
		MAR		*,AR3           ;ARP:AR3, AR3:slope
		ADRK	#1      		;AR3:uout
		SPLK	#umin,*,AR1		;uout=umin
								;ARP:AR1
		B		volt_freq_end
highfreq
		MAR		*,AR3			;ARP:AR3, AR3:slope
		ADRK	#1              ;ARP:uout
		SPLK	#umax,*,AR1     ;uout=umax
volt_freq_end
		SBRK	#_volt_freq_frame+1
		LAR		AR0,*-			;C compatible
		PSHD	*
		RET
			
				

⌨️ 快捷键说明

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