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

📄 wdf_ex3_asm.s43

📁 Wave Digital Filtering Using the MSP430
💻 S43
📖 第 1 页 / 共 2 页
字号:
        rra.w     R13
        rra.w     R13               ; Final output=X4*2^-4 
        sub.w     R15, R13          ; R13=OUTP25
        mov.w     R13, &delay5      ; Delay5 updated with OUTP25
        sub.w     R12, R13          ; R13=OUTP15
        rra.w     R13               ; Divided by 2 as part of WDF algo
        sub.w     R13, &output1     ; Filter 1 final output updated. It is the  
                                    ; input to Filter 2
        
        
        ; Filter 2 Low pass WDF 
        ; Top part of Filter 2
        
        ; Adaptor 7 Type 1          Alpha7=0.44067912013
        
        mov.w     &output1, R11        
        mov.w     R11, R12          ; R11=Input sample
        sub.w     &delay7,R12       ; R12=P17
        mov.w     R12,R13
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X1=X*2^-2-X
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X2=X1*2^-2+X
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X3=X2*2^-4-X
        rra.w     R13
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X4=X3*2^-3+X
        rra.w     R13               ; Final output=X4*2^-1 
        add.w     &delay7,R13
        mov.w     R13, &delay7      ; Delay7 updated with OUTP27
        sub.w     R12,R13           ; R13=OUTP17  
        mov.w     R13,R15           ; R15=OUTP17
        
        ; Adaptor 11     Type 2     Alpha11=0.4551195777  
    
        mov.w     &delay10, R12
        mov.w     &delay11, R13
        sub.w     R12, R13          ; R13=P111
        mov.w     R13, R12
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X1=X*2^-6+X
        rra.w     R13
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X2=X1*2^-3+X
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X3=X2*2^-2-X
        rra.w     R13
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X4=X3*2^-3+X
        rra.w     R13               ; Final output=X4*2^-1 
        mov.w     R13, R12
        add.w     &delay10, R13     ; R13=OUTP211
        add.w     &delay11, R12     ; R12=OUTP111
        mov.w     R13, &delay11     ; Delay11 updated with OUTP211
        mov.w     R12, R14          ; R14=OUTP111
        
        ; Adaptor 10   Type 4       Alpha10=0.244974070943
        
        sub.w     R15,R12           ; R13=P110
        mov.w     R12,R13
        inv.w     R13
        add.w     #1, R13
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X1=-X*2^-2-X  
        rra.w     R13
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X2=X1*2^-3-X
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X3=X2*2^-2-X
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X4=X3*2^-6+X
        rra.w     R13
        rra.w     R13               ; Final output=X4*2^-2 
        sub.w     R14,R13           ; R13=OUTP210
        mov.w     R13, &delay10     ; Delay10 updated with OUTP210
        sub.w     R12, R13          ; R13=OUTP110
        mov.w     R13, R15          ; R15=OUTP110
        rra.w     R13               ; Divided by 2 as part of WDF algo
        mov.w     R13, &output2     ; Top section output sample stored in Output2
              
        ; Bottom part of the second filter
        ; Adaptor 9   Type 1        Alpha9=0.332027780934 
        
        sub.w     &delay9, &delay8
        mov.w     &delay8, R12      ; R12=P19
        mov.w     R12, R13
        inv.w     R13
        add.w     #1, R13
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X1=-X*2^-8+X
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X2=X1*2^-2+X
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X3=X2*2^-4+X
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X4=X3*2^-2+X
        rra.w     R13
        rra.w     R13               ; Final output=X4*2^-2 
        add.w     &delay9, R13      ; R13=OUTP29
        mov.w     R13, &delay9      ; Delay9 updated with OUTP29
        sub.w     R12, R13          ; R13=OUTP19
        mov.w     R13, R15          ; R15=OUTP19

        ; Adaptor 8   Type 3        Alpha8=0.483475352921
        
        mov.w     R11, R14
        sub.w     R13, R14          ; R11=P18
        mov.w     R14, R12
        mov.w     R12, R13
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X1=X*2^-2+X
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X2=X1*2^-4-X
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X3=X2*2^-4-X
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X4=X3*2^-5+X
        rra.w     R13               ; Final output=X4*2^-1 
        mov.w     R13,R12
        sub.w     R11, R13          ; R13=OUTP28
        mov.w     R13, &delay8      ; Delay8 updated with OUTP28
        sub.w     R15, R12          ; R12=OUTP18
        mov.w     R12, R15          ; R15=OUTP18 
       
       ; Adaptor 13     Type 1      Alph13=0.369550526968 
    
        mov.w     &delay12, R12
        mov.w     &delay13, R13
        sub.w     R12, R13          ; R13=P113
        mov.w     R13, R12
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X1=X*2^-2-X 
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X2=X1*2^-2+X
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X3=X2*2^-2+X
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X4=X3*2^-2-X
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X5=X4*2^-4-X 
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X6=X5*2^-2+X
        rra.w     R13               ; Final output=X6*2^-1 
        mov.w     R13, R12          
        add.w     &delay12, R13     ; R13=OUTP213
        add.w     &delay13, R12     ; R12=OUTP113
        mov.w     R13, &delay13     ; Delay13 updated with OUTP213
        mov.w     R12, R14          ; R14=OUTP213
        
        ; Adaptor 12   Type 4       Alpha12=0.06680470424
        
        sub.w     R15,R12           ; R13=P112
        mov.w     R12,R13
        rra.w     R13
        rra.w     R13
        sub.w     R12,R13           ; X1=X*2^-2-X
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X2=X1*2^-2+X
        rra.w     R13
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X3=X2*2^-3+X
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13
        add.w     R12,R13           ; X4=X3*2^-4+X
        rra.w     R13
        rra.w     R13
        rra.w     R13
        rra.w     R13               ; Final output=X4*2^-4 
        sub.w     R14,R13           ; R13=OUTP212
        mov.w     R13, &delay12     ; Delay12 updated with OUTP212
        sub.w     R12, R13          ; R13=OUTP112
        rra.w     R13               ; Divided by 2 as part of WDF algo
        mov.w     R13, R15          ; R15=OUTP112
        add.w     R13, &output2     ; Filter final output updated. It is the  
                                    ; output of the BPF 
        ret
        end 
        

⌨️ 快捷键说明

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