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

📄 sine.asm

📁 (Ebook-Pdf) Dsp - Real Time Digital Signal Processing (Usando Tms320-55Xx). 有书
💻 ASM
字号:
;
;   sine.asm - 2nd-order resonator as sinewave generator
;                                        
;   It works better in the range of f/Fs=[0.125-0.975]
;   Initialization condition:
;       A = cos(2*PI*f/Fs)
;       w[0] = sin(2*PI*f/Fs)
;       w[1] = 0
;
;   prototype: void sinewave_gen(int *x, unsigned int N, int *x, int cos_w)
;
;   Entry: x[i] - AR0: output sinewave sample buffer
;          wd[i] - AR1: delay-line
;          N - T0: number of samples
;          cos_w - T1: coefficient controls sinewave frequency 
;
;

    .def   _sine
    .text
		
_sine 
    pshm  ST1_55             ; Save ST1, ST2, and ST3
    pshm  ST2_55
    pshm  ST3_55

    sub   #1,T0          
    mov   mmap(T0),BRC0   
    bset  FRCT        
    bset  SATD               
    bset  SMUL
    mpym  *AR1+,T1,AC0       ; AC0=cos(w)*w[0]
||  rptb  sine_loop-1        ; for(i=0;i<N;i++)
    sub   *AR1-<<#16,AC0,AC1 ; AC1=cos(w)*w[0]-w[1]
    add   AC0,AC1            ; AC1=2*cos(w)*w[0]-w[1]
||  delay *AR1               ; w[1]=w[0]
    mov   rnd(hi(AC1)),*AR1  ; w[0]=y[i]  
    mov   rnd(hi(AC1)),*AR0+ ; y[i]=2*cos(w)*w[0]-w[1]
||  mpym  *AR1+,T1,AC0       ; AC0=cos(w)*w[0]	
sine_loop	    
     
    popm  ST3_55             ; Restore ST1, ST2, and ST3
    popm  ST2_55
    popm  ST1_55
    ret
    .end	

⌨️ 快捷键说明

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