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

📄 data_cache.asm

📁 关于整流器的程序.这个程序是在TI的DSP上实现
💻 ASM
字号:
***************************************
****File name: data_cache.asm

***************************************
       .include "F2407REGS.H"
       .def     DATA_CACHE,TEST
  
DATA_CACHE:
    NOP
    MAR   *,AR2
    BANZ  DATA_S,*-,AR1
    NOP
    LAR   AR2,#255
    SBRK  #255  
    SBRK  #1
DATA_S:
    SACL  *+
    
    RET
******************************************
**ia,ib

******************************************

    .def IA,IB
    .ref SINTAB_360
    .ref N,D_THETA
I_H     	.usect "theta",1
I_L     	.usect "theta",1
IA      	.usect "theta",1
IB     		.usect "theta",1
INXT_ENTRY 	.usect "theta",1
TEST:
   


     NOP
**************************************
**** THETA=N*D_THETA
**************************************
    LDP   #N
    SPM   1
    LT    D_THETA
    MPY   N             	;Q13*Q0
    PAC                 	;Q14
    SACH  I_H,2 		;Table pointer
    AND   #3FFFH        	;Force THETA_L to a positive number
    SACL  I_L,1			;Q15

******************************************
****Calculate the sin_theta

******************************************
	LACC  I_H
	AND   #0FFH
	ADD   #SINTAB_360
	TBLR  IA		;sin_theta = Sin(theta) in Q15
	ADD   #1H		;Inc Table pointer
	TBLR  INXT_ENTRY	;Get next entry i.e. (Entry + 1)
	LACC  INXT_ENTRY
	SUB   IA		;Find Delta of 2 points
	SACL  INXT_ENTRY
	LT    INXT_ENTRY
	MPY   I_L		;THETA_L = interpolation value
	LACC  IA,16
	APAC
	SFR
	SFR
	SFR
	SFR
	add   #8192,15          ;for test
	SACH  IA		;sin_theta = Final interpolated value    
	
*******************************************
****Calculate the cos_theta

*******************************************
    	LACL  I_H
    	ADD   #0ABH         	 ;COS_THETA=SIN_THETA+90,256/3=64->40H
    	AND   #0FFH
    	ADD   #SINTAB_360
    	TBLR  IB
    	ADD   #1H		;Inc Table pointer
	TBLR  INXT_ENTRY	;Get next entry i.e. (Entry + 1)
	LACC  INXT_ENTRY
	SUB   IB		;Find Delta of 2 points
	SACL  INXT_ENTRY
	LT    INXT_ENTRY
	MPY   I_L		;THETA_L = interpolation value
	LACC  IB,16
	APAC
	SFR
	SFR
	SFR
	SFR
	SACH  IB		;sin_theta = Final interpolated value 
    RET

⌨️ 快捷键说明

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