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

📄 msp430f169_fir.s43

📁 用C语言编写的基于低功耗单片机MSP430作为MCU的FIR滤波程序。
💻 S43
📖 第 1 页 / 共 2 页
字号:
join        mov.w   &UP,&DMA1SA                 ; store DMA1 source address
            mov.w   &DN,&DMA2SA                 ; store DMA2 destination address
            add.w   &FREQINC,&BASE              ; Sine wave input frequency control
            clr.w   R4                          ; clear R4
            mov.w   &BASE,R4                    ; set time base for DAC o/p generation
            bic.w   #0c000h,R4                  ; 8192 samples sine table       
            add.w   #SINE8192,R4                ; add address offset for sine table 
            mov.w   0(R4),R4                    ; get new value to filter input
            mov.w   R4,&INPUT                   ; Store to sample buffer
            mov.w   R4,&DAC12_0DAT              ; Output to DAC0 for scope 
            mov.w   R4,&INPUT                   ; Store to sample buffer
            inc.w   &SWCNTR                     ; Sweep test frequency
            cmp.w   #SWRATE,&SWCNTR             ; check if max frequency reached
            jl      finish                      ; if not reached continue
incfreq     clr.w   &SWCNTR                     ; clear sweep counter
            add.w   #0x2, &FREQINC              ; increase freq
            cmp.w   #(2*FREQMAX),&FREQINC       ; check if max end frequency is reached
            jl      finish                      ; if not reached continue
setfreqmin  mov.w   #(2*FREQMIN),&FREQINC       ; set start frequency
finish      reti                                ; Return from ISR

datamov     mov.w   &PUP_INIT,&UP               ; reassign up pointer           
            mov.w   PUP_INIT,R4                 ; move for address pointer
            mov.w   &INPUT,0(R4)                ; store input sampe to circular up buffer
            mov.w   &PDN_INIT,&DN               ; reassign down pointer
            jmp     join                        ; join FIR algorithm
;------------------------------------------------------------------------------- 
; Filter Coeffecients
;------------------------------------------------------------------------------- 
FILTER
; 40 tap lowpass 3.4kHz running 27kHz sample rate at 8MHz MCLK
      DW 300                                    ; sample period data
      DW 40                                     ; 40 taps 
      DW 0013Fh
      DW 000E7h
      DW 0FF2Eh
      DW 0FC7Ah
      DW 0FAFBh
      DW 0FC72h
      DW 0000Ah
      DW 00287h
      DW 00161h
      DW 0FDCAh
      DW 0FC03h
      DW 0FEE1h
      DW 003FFh
      DW 00559h
      DW 0FFC0h
      DW 0F7D5h
      DW 0F77Ah
      DW 004CEh
      DW 01ADCh
      DW 02BD4h



;FILTER
; 224 tap bandpass 2.5kHz running 5kHz sample rate at 8MHz MCLK  
      DW 1500                                   ; sample period data 
      DW 224                                    ; 224 taps 
      DW 00012h
      DW 0FFFDh
      DW 0FFF8h
      DW 0FFEEh
      DW 0FFE0h
      DW 0FFD4h
      DW 0FFD1h
      DW 0FFDDh
      DW 0FFF8h
      DW 0001Eh
      DW 00044h
      DW 0005Eh
      DW 00062h
      DW 0004Fh
      DW 00028h
      DW 0FFF7h
      DW 0FFC9h
      DW 0FFAAh
      DW 0FFA2h
      DW 0FFB0h
      DW 0FFCEh
      DW 0FFF1h
      DW 0000Ah
      DW 00012h
      DW 00008h
      DW 0FFF3h
      DW 0FFE3h
      DW 0FFE3h
      DW 0FFFAh
      DW 00024h
      DW 00054h
      DW 00078h
      DW 00081h
      DW 00069h
      DW 00035h
      DW 0FFF5h
      DW 0FFBCh
      DW 0FF9Ch
      DW 0FF9Bh
      DW 0FFB6h
      DW 0FFDCh
      DW 0FFFAh
      DW 0FFFFh
      DW 0FFE7h
      DW 0FFBDh
      DW 0FF96h
      DW 0FF8Ah
      DW 0FFA9h
      DW 0FFF1h
      DW 00051h
      DW 000ACh
      DW 000E4h
      DW 000E3h
      DW 000ABh
      DW 00050h
      DW 0FFF1h
      DW 0FFB0h
      DW 0FF9Fh
      DW 0FFBCh
      DW 0FFF0h
      DW 00018h
      DW 00016h
      DW 0FFDDh
      DW 0FF7Ah
      DW 0FF11h
      DW 0FED0h
      DW 0FEDAh
      DW 0FF3Ch
      DW 0FFE1h
      DW 0009Ah
      DW 0012Ch
      DW 0016Dh
      DW 0014Bh
      DW 000DEh
      DW 00058h
      DW 0FFF4h
      DW 0FFDBh
      DW 00013h
      DW 0007Ah
      DW 000D1h
      DW 000D6h
      DW 00064h
      DW 0FF86h
      DW 0FE75h
      DW 0FD8Eh
      DW 0FD28h
      DW 0FD77h
      DW 0FE6Eh
      DW 0FFC5h
      DW 0010Eh
      DW 001E0h
      DW 001FFh
      DW 0017Bh
      DW 000AAh
      DW 0000Ch
      DW 0000Fh
      DW 000E2h
      DW 00251h
      DW 003CBh
      DW 00490h
      DW 003F5h
      DW 001B2h
      DW 0FE0Ah
      DW 0F9D3h
      DW 0F63Fh
      DW 0F482h
      DW 0F56Eh
      DW 0F921h
      DW 0FEEBh
      DW 00574h
      DW 00B15h
      DW 00E54h

;FILTER
; 101 tap bandstop 5kHz running 11kHz sample rate at 8MHz MCLK   
      DW 750                                    ; sample period data     
      DW 101                                    ; 101 taps 
      DW 0FFFCh
      DW 0FF7Bh
      DW 00054h
      DW 0010Ah
      DW 0FFB9h
      DW 00007h
      DW 0002Fh
      DW 00039h
      DW 0FFEFh
      DW 00019h
      DW 0FF99h
      DW 00021h
      DW 000BDh
      DW 0FF92h
      DW 0FF0Dh
      DW 000EAh
      DW 000C7h
      DW 0FED3h
      DW 0FF9Dh
      DW 0010Ch
      DW 00000h
      DW 0FF8Fh
      DW 00002h
      DW 0FF9Bh
      DW 00090h
      DW 0010Eh
      DW 0FE60h
      DW 0FEE0h
      DW 002BCh
      DW 0007Fh
      DW 0FCB2h
      DW 00083h
      DW 002E9h
      DW 0FECEh
      DW 0FE65h
      DW 000C9h
      DW 00003h
      DW 00122h
      DW 000D9h
      DW 0FBB2h
      DW 00000h
      DW 007C2h
      DW 0FD05h
      DW 0F5DBh
      DW 007A9h
      DW 00A45h
      DW 0F333h
      DW 0F856h
      DW 010CCh
      DW 002D6h
      DW 036D9h                                    
;-------------------------------------------------------------------------------
            COMMON  INTVEC                      ; MSP430F16x interrupt vectors
;-------------------------------------------------------------------------------
            ORG     TIMERB0_VECTOR              ; Timer_B0 interrupt vector
            DW      Timer_B0_ISR            

            ORG     RESET_VECTOR
            DW      Main                        ; POR, ext. reset

            END

⌨️ 快捷键说明

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