TI中文支持网
TI专业的中文技术问题搜集分享网站

28027移相全桥2p2z算法

MOVW DP, #_CNTL_2P2Z_Ref:n:
MOVL XAR0, @_CNTL_2P2Z_Ref:n: ; net pointer to Ref (XAR0)
MOVW DP,#_CNTL_2P2Z_Fdbk:n:
MOVL XAR1, @_CNTL_2P2Z_Fdbk:n: ; net pointer to Fdbk (XAR1)
MOVW DP,#_CNTL_2P2Z_DBUFF:n:
MOVL XAR4, #_CNTL_2P2Z_DBUFF:n: ; pointer to the DBUFF array (used internally by the module)
; calculate error (Ref – Fdbk)
MOVL ACC, *XAR0 ; ACC = Ref (Q24) = Q(24)
SUBL ACC, *XAR1 ; ACC = Ref(Q24) – Fdbk(Q24)= error(Q24)
LSL ACC, #6 ; Logical left shift by 6, Q{24}<<6 -> Q{30}
;store error in DBUFF MOVL *+XAR4[4], ACC ; e(n) = ACC = error Q{30} MOVW DP,#_CNTL_2P2Z_Out:n:
MOVL XAR2, @_CNTL_2P2Z_Out:n: ; net pointer to Out (XAR2)
MOVW DP,#_CNTL_2P2Z_Coef:n:
MOVL XAR3, @_CNTL_2P2Z_Coef:n: ; net pointer to Coef (XAR3)
ZAPA

MOV AR0,#8
MOVL XT, *+XAR4[AR0] ; XT = e(n-2)
QMPYL P, XT, *XAR3++ ; P = e(n-2) Q30 *B2{Q26} = I8Q24
MOVDL XT, *+XAR4[6] ; XT = e(n-1), e(n-2) = e(n-1)
QMPYAL P, XT, *XAR3++ ; P = e(n-1)Q30*B1{Q26} = Q24, ACC=e(n-2)*B2
MOVDL XT, *+XAR4[4] ; XT = e(n), e(n-1) = e(n) 
QMPYAL P, XT, *XAR3++ ; P = e(n)Q30*B0{Q26}= Q24, ACC = e(n-2)*B2 + e(n-1)*B1 
MOVL XT,*+XAR4[2] ; XT = u(n-2)
QMPYAL P, XT, *XAR3++ ; P = u(n-2)*A2, ACC = e(n-2)*B2 + e(n-1)*B1 + e(n)*B0
MOVDL XT,*+XAR4[0] ; XT = u(n-1), u(n-2) = u(n-1)
QMPYAL P, XT, *XAR3++ ; P = u(n-1)*A1, ACC = e(n-2)*B2 + e(n-1)*B1 + e(n)*B0 + u(n-2)*A2
ADDL ACC, @P ; ACC = e(n-2)*B2 + e(n-1)*B1 + e(n)*B0 + u(n-2)*A2 + u(n-1)*A1 

只是将ACC赋值到了XR4[4]中, XR4[0],XR4[2],XR4[6],XR4[8],的值是怎么来的,也就是DBUFF这个数组的值是怎么来的 u(n-1)和u(n-2)的值是如何计算得出的

汇编基础较弱,这里看不懂,希望能解答,谢谢了

赞(0)
未经允许不得转载:TI中文支持网 » 28027移相全桥2p2z算法
分享到: 更多 (0)