?? clarke.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 + -