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

📄 bp45a.asm

📁 "DIGITAL SIGNAL PROCESSING WITH C AND THE TMS32 0C30"一书的附带程序
💻 ASM
字号:
;BP45A.ASM-FIR BANDPASS FILTER WITH 45 COEFF,USING TMS320C30 CODE
        .TITLE  "BP45A.ASM"      ;BP FIR,Fc=1 kHz,Fs=10 kHz
        .GLOBAL FILT,MAIN,BEGIN  ;GLOBAL REF/DEF               
        .DATA                    ;ASSEMBLE INTO DATA SECTION
XN_ADDR .WORD   XN+LENGTH-1      ;(LAST) SAMPLE ADDRESS
HN_ADDR .WORD   COEFF            ;ADDR OF COEFF H(N-1)  
IO_IN   .WORD   804000H          ;INPUT PORT ADDRESS
IO_OUT  .WORD   804001H          ;OUTPUT PORT ADDRESS
XN      .USECT  "XN_BUFF",LENGTH ;BUFFER SIZE OF SAMPLES  
        .SECT   "VECTORS"        ;VECTOR SECTION
MAIN    .WORD   BEGIN            ;BEGIN @ RESET (0H)
        .TEXT                    ;ASSEMBLE INTO TEXT
BEGIN   LDI     @IO_IN,AR5       ;POINTER TO INPUT PORT ADDR
        LDI     @IO_OUT,AR6      ;POINTER TO OUTPUT PORT ADDR
        LDI     LENGTH,BK        ;SIZE OF CIRCULAR BUFFER
        LDI     @XN_ADDR,AR1     ;LAST SAMPLE ADDR -> AR1
        LDI     @COEFF,AR0       ;COEFF H(N-1) ADDR-> AR0
        LDF     0,R0             ;INITIALIZE R0
        RPTS    LENGTH-1         ;INITIALIZE ALL XN TO 0
        STF     R0,*AR1--%       ;START/END AT LAST SAMPLE
FILT    LDI     LENGTH,AR4       ;LENGTH IN AR4
        SUBI    1,AR4            ;AR4=LOOP COUNTER 
LOOP    FLOAT   *AR5,R3          ;INPUT NEW SAMPLE
        STF     R3,*AR1++        ;STORE NEWEST SAMPLE
        LDI     @HN_ADDR,AR0     ;AR0 POINTS TO COEFF H(N-1)
        LDF     0,R0             ;INITIALIZE R0
        LDF     0.0,R2           ;INITIALIZE R2
        RPTS    LENGTH-1         ;REPEAT LENGTH-1 TIMES
        MPYF    *AR0++,*AR1++%,R0  ;R0 = HN*XN 
||      ADDF    R0,R2            ;R2 IS THE ACCUMULATOR
        DBNZD   AR4,LOOP         ;DELAYED BRANCH UNTIL AR4<0
        ADDF    R0,R2            ;LAST VALUE ACCUMULATED
        FIX     R2,R0            ;FLOAT(R2) TO INTEGER(R0)
        STI     R0,*AR6          ;OUTPUT R0 TO IO_OUT
WAIT    BR      WAIT             ;WAIT 
        .DATA                    ;ASSEMBLE INTO DATA SECTION
COEFF   .FLOAT  -1.839E-3        ;H44
        .FLOAT  -2.657E-3        ;H43
        .FLOAT  -1.437E-7        ;H42
        .FLOAT   3.154E-3        ; .
        .FLOAT   2.595E-3        ; .
        .FLOAT  -4.159E-3        
        .FLOAT  -1.540E-2
        .FLOAT  -2.507E-2
        .FLOAT  -2.547E-2 
        .FLOAT  -1.179E-2
        .FLOAT   1.392E-2
        .FLOAT   4.206E-2 
        .FLOAT   5.888E-2
        .FLOAT   5.307E-2
        .FLOAT   2.225E-2
        .FLOAT  -2.410E-2
        .FLOAT  -6.754E-2
        .FLOAT  -8.831E-2
        .FLOAT  -7.475E-2
        .FLOAT  -2.956E-2
        .FLOAT   3.030E-2
        .FLOAT   8.050E-2
        .FLOAT   1.000E-1
        .FLOAT   8.050E-2
        .FLOAT   3.030E-2
        .FLOAT  -2.956E-2
        .FLOAT  -7.475E-2
        .FLOAT  -8.831E-2
        .FLOAT  -6.754E-2
        .FLOAT  -2.410E-2
        .FLOAT   2.225E-2
        .FLOAT   5.307E-2
        .FLOAT   5.888E-2
        .FLOAT   4.206E-2
        .FLOAT   1.392E-2
        .FLOAT  -1.179E-2
        .FLOAT  -2.547E-2
        .FLOAT  -2.507E-2
        .FLOAT  -1.540E-2
        .FLOAT  -4.159E-3
        .FLOAT   2.595E-3
        .FLOAT   3.154E-3
        .FLOAT  -1.437E-7
        .FLOAT  -2.657E-3        ;H1
H0      .FLOAT  -1.839E-3        ;H0
LENGTH  .SET    H0-COEFF+1       ;LENGTH = 45
        .END                     ;END

⌨️ 快捷键说明

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