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

📄 i_get.asm

📁 DSP关于F2407的实例程序
💻 ASM
字号:
;===================================================================== 
; File name	:	i_GET.asm
; Module Name	: 	i_GET
; Initialization Routine: i_GET_INIT
; Description	:	从电流传感器采样并转换成两相静止坐标系(alfa,beta)下的值。
; 并且读出速度给定值(转换成7FFFH/mS格式)
;===================================================================== 
		.include "f2407.h"
		
		.global	i_GET,i_GET_INIT		;function call
		.global	PROTECT

		.global	IA0,IB0,IA1,IB1,IA2,IB2		;output(Q12)
		.global	Omiga_ref			;output
		.global	TEMP,TEMP1
		
;===================================================================== 
i_GET_INIT:
;===================================================================== 
		LDP	#DP_PF2
		SPLK	#4000H,ADCTRL1			;RESET ADC
		SPLK	#02H,MAX_CONV			;02H表示有3个转换!!!!
		SPLK	#210H,CHSELSEQ1			;次序对转换结果很有影响,021或012次序时2通道读数误差较大。
		SPLK	#0010100100000000B,ADCTRL1	;仿真悬挂时ADC完成转换后停止,启停模式。
		SPLK	#0100H,ADCTRL2
		RET
;===================================================================== 
i_GET:
;===================================================================== 		
		SPM	0
		CLRC	SXM			;ADRESULT左移时不产生符号扩展			
;-----------------------------------------------------------	
; IA0 = ( AD_RESULT - 1FFH (实际测量时调整) ) * 44H		
		CLRC	SXM
		LDP	#DP_PF2
		LACC	RESULT2,10		;读通道2的值iA,这里结果左对齐。所以要左移10位移到ACC高16位。
		
		SETC	SXM
		LDP	#DP_DATA		;用户定义的数据页
;		SACH	IA0
		SACH	TEMP
		LACL	TEMP
		SUB	#1ACH			;按传感器在0输出时调整。	
;		SACL	IA0
		SACL	TEMP
		LT	TEMP
		MPY	#44H
		SPL	IA0			;存入IA0,注意当RESULT1=400H时会溢出,结果为8000H。所以应该避免,这里电流不会到满量程。
;-----------------------------------------------------------		
		CLRC	SXM
		LDP	#DP_PF2
		LACC	RESULT1,10		;读通道1的值iB
		
		SETC	SXM
		LDP	#DP_DATA
;		SACH	IB0
		SACH	TEMP
		LACL	TEMP
		SUB	#1ECH			;按传感器在0输出时调整。
;		SACL	IB0
		SACL	TEMP
		LT	TEMP
		MPY	#44H			;稍微修正了一下。
		SPL	IB0			;存入IB0
;-----------------------------------------------------------
; Omiga_in = AD_RESULT * 4 / 5 =AD_RESULT * 4 * 0.2
GET_Omiga:	CLRC	SXM
		LDP	#DP_PF2
		LACC	RESULT0,12		;读通道0的值Omiga_in*4
		LDP	#DP_DATA
		SACH	TEMP
		LT	TEMP  
		SPLK	#6346,TEMP1	;0.2(Q15)
		MPY	TEMP1			
		SPM	1
		SPH	Omiga_ref		;存入Omiga_ref
	
	;	SPLK	#300,Omiga_ref
		
		LACC	Omiga_ref
		SUB	#30
		BCND	ENDGET,GT
		CALL	PROTECT
;-----------------------------------------------------------			
ENDGET:		
		LDP	#DP_PF2
		LACL	ADCTRL2
		SACL	ADCTRL2			;清中断标志位
		SPM	0
		SETC	SXM
		RET
			

				

⌨️ 快捷键说明

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