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

📄 clarke.asm

📁 此源码实现静止至旋转变换的算法
💻 ASM
字号:
;=======================================================================
; File Name:	clarke.asm			      
;
; Module Name: 	CLARKE	
;
; Initialization Routine: CLARKE_INIT
;
; Description:	Converts balanced three phase quantities into balanced 
;		two phase quadrature quantities.
;				(a,b,c) -> (d,q) Transformation
;				clark_d = clark_a
;				clark_q = (2 * clark_b + clark_a) / sqrt(3)
;
;			 |~~~~~~~~~~~~~~~~~|
;	clark_a	 o------>|		   |----->o  clark_d
;	clark_b	 o------>|     CLARKE      |
;	clark_c* o------>|		   |----->o  clark_q
;			 |_________________|
;
;	*Note: Not needed (for completeness only)
;	
;
; Target dependency:	C2xx core only
;
;
;=====================================================================================
;		.ref	CLARKE, CLARKE_INIT				;function call
;		.ref	clark_a, clark_b				;Inputs
;		.ref	clark_d, clark_q				;Outputs
;=======================================================================
;Module definitions for external reference.
		.def	CLARKE, CLARKE_INIT				;function call
		.def	clark_a, clark_b				;Inputs
		.def	clark_d, clark_q				;Outputs
;=======================================================================
		.include "x24x_app.h"

; Variables     
clark_a		.usect "clarke",1
clark_b		.usect "clarke",1
clark_d		.usect "clarke",1
clark_q		.usect "clarke",1
sqrt3inv	.usect "clarke",1    			; 1/sqrt(3)
clk_temp	.usect "clarke",1

;=========================
CLARKE_INIT:	  
;=========================
; sqrt3inv = (1/sqrt(3))=0.577350269
		ldp		#clark_a	
		SPLK 	#18919,sqrt3inv  	; 1/sqrt(3) (Q15)
		RET
   
;=========================
CLARKE:	  
;=========================
		SPM	1			; Set SPM for Q15 math
		SETC	SXM             ; Sign extension mode on

;clark_d = clark_a
		ldp		#clark_a	
		LACC	clark_a		     	; ACC = clark_a
		SACL	clark_d					; clark_d = clark_a
                                    
;clark_q = (2 * clark_b + clark_a) / sqrt(3)
	LT		sqrt3inv
	MPY		clark_a
	PAC
	MPY		clark_b
	APAC
	MPY		clark_b
	APAC
	SACH	clark_q
	SPM		0
		RET
	

⌨️ 快捷键说明

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