【解析新特性】300W单路输出工业电源>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » DSP低通数字滤波器的程序

共1条 1/1 1 跳转至

DSP低通数字滤波器的程序

菜鸟
2005-05-14 17:09:00    评分

大家好 : 本人是电子专业的毕业生 毕业课题是《DSP低通数字滤波器的实现》以下是程序 有那位高人能帮小第解答一下?读懂程序。 小弟不甚感激。为盼! .title \"fir\" ;McBsp 内存映射寄存器 SPSA0 .set 038h SPSD0 .set 039h DRR10 .set 021h DRR20 .set 020h DXR10 .set 023h DXR20 .set 022h SPSA1 .set 048h SPSD1 .set 049h DRR11 .set 041h DRR21 .set 040h DXR11 .set 043h DXR21 .set 042h SPSA2 .set 034h SPSD2 .set 035h DRR12 .set 031h DRR22 .set 030h DXR12 .set 033h DXR22 .set 032h ;McBsp Subaddressed Registers SPCR1 .set 00h SPCR2 .set 01h RCR1 .set 02h RCR2 .set 03h XCR1 .set 04h XCR2 .set 05h SRGR1 .set 06h SRGR2 .set 07h MCR1 .set 08h MCR2 .set 09h RCERA .set 0ah RCERB .set 0bh XCERA .set 0ch XCERB .set 0dh PCR .set 0eh SPSA .set SPSA0 SPSD .set SPSD0 RDRR .set DRR10 RDXR .set DXR10 IMASK .set 0010h .asg AR0,FIR_INDEX_P .asg AR4,FIR_DATA_P .asg AR5,FIR_COFF_P WR_SUB_REG .macro val,addr ;写McBsp控制寄存器 stm addr,SPSA nop stm val,SPSD nop .endm RD_SUB_REG .macro addr,acc ;读McBsp控制寄存器 stm #:addr:,SPSA nop ldm SPSD,acc nop nop nop .endm WAITTRX .macro ;等待串口中断 WAITR? RD_SUB_REG SPCR1,A and #1<<1, A bc WAITR?, AEQ .endm PROGREG .macro progword ;与AD50二次通讯 stm #01h,RDXR WAITTRX stm #:progword:,RDXR WAITTRX .endm wait .macro STM #0008h, AR2 RPT *AR2 NOP .endm .mmregs .global _c_int00 .sect \".vectors\" RESET b _c_int00 nop nop .space 19*4*16 BRINT0 b recv nop nop BXINT0 b trans nop nop .space 10*4*16 K_FIR_BFFR .set 80 coff_fir_table .sect \"coff_fir\" h0 .word 0 h1 .word -157 h2 .word -261 h3 .word -268 h4 .word -170 h5 .word 0 h6 .word 180 h7 .word 301 h8 .word 310 h9 .word 198 h10 .word 0 h11 .word -211 h12 .word -354 h13 .word -367 h14 .word -236 h15 .word 0 h16 .word 255 h17 .word 431 h18 .word 451 h19 .word 292 h20 .word 0 h21 .word -323 h22 .word -551 h23 .word -584 h24 .word -383 h25 .word 0 h26 .word 438 h27 .word 763 h28 .word 827 h29 .word 557 h30 .word 0 h31 .word -681 h32 .word -1240 h33 .word -1417 h34 .word -1022 h35 .word 0 h36 .word 1533 h37 .word 3307 h38 .word 4960 h39 .word 6131 h40 .word 6131 h41 .word 4960 h42 .word 3307 h43 .word 1533 h44 .word 0 h45 .word -1022 h46 .word -1417 h47 .word -1240 h48 .word -681 h49 .word 0 h50 .word 557 h51 .word 827 h52 .word 763 h53 .word 438 h54 .word 0 h55 .word -383 h56 .word -584 h57 .word -551 h58 .word -323 h59 .word 0 h60 .word 292 h61 .word 451 h62 .word 431 h63 .word 255 h64 .word 0 h65 .word -236 h66 .word -367 h67 .word -354 h68 .word -211 h69 .word 0 h70 .word 198 h71 .word 310 h72 .word 301 h73 .word 180 h74 .word 0 h75 .word -170 h76 .word -268 h77 .word -261 h78 .word -157 h79 .word 0 d_data_buffer .usect \"fir_bfr\",200 .text _c_int00 ld #0h,DP stm #7ffh,SP ssbx INTM ssbx SXM st #2491h,SWWSR st #0ffe0h,PMST ST #0h,CLKMD tst: BITF CLKMD,#1h BC tst,TC ST #0f007h,CLKMD BITF CLKMD,#1h RPT #0FFh NOP stm #4000h,ar6 stm #4500h,ar3 stm #1000h,ar7 ld #0,a wer stl a,*ar6+ banz wer,*ar7- stm #4000h,ar6 stm #999,ar7 stm #5000h,ar1 fir_init stm #1,AR0 ;step=1 stm #coff_fir_table,FIR_COFF_P ;fir_data_p=ar4 stm #d_data_buffer,FIR_DATA_P ;fir_data_p=ar5 rptz A,#K_FIR_BFFR ;fir_data_p=0 stl A,*FIR_DATA_P stm #(d_data_buffer+K_FIR_BFFR-1),FIR_DATA_P ;ar4=ar4+79 stm #K_FIR_BFFR,BK ;bk=80 mcbsp_init ;初始化McBsp串口 rsbx CPL nop ; cpl latency nop ; cpl latency nop ; cpl latency ld #0,DP ssbx INTM ssbx SXM WR_SUB_REG #0000H,SPCR1 WR_SUB_REG #0200H,SPCR2 WR_SUB_REG #000CH,PCR WR_SUB_REG #0000H,SPCR1 WR_SUB_REG #0000H,SPCR2 WR_SUB_REG #0040H,RCR1 ;16 BITs WR_SUB_REG #0004H,RCR2 ;Ignore FS after the first WR_SUB_REG #0040H,XCR1 ;16 BITs WR_SUB_REG #0004H,XCR2 ;Ignore FS after the first ld 100,A wait andm #0ff3fh, 54h ;set interrupts to come from serial ports not DMA ;by clearing bits 6 and 7 in DMPREC stm #0,RDXR WR_SUB_REG #0001H,SPCR1 ;启动McBsp串口 WR_SUB_REG #0201H,SPCR2 ld 100,A wait aic_init stm #0h,IMR orm #30h,IMR stm #0ffffh,IFR PROGREG 0301h PROGREG 0410h ld RDRR,A ld RDRR,A stlm A,RDXR stlm A,RDXR rsbx INTM nop nop nop js nop nop nop b js recv ldm RDRR,A ;ADC采样数据滤波存放到A中 ld a,b ;ADC采样数据不滤波存放到B中 stl A,*FIR_DATA_P+0% ; 代替原来的数据 rptz A,(K_FIR_BFFR-1) ; 80阶 mac *FIR_DATA_P+0%,*FIR_COFF_P+0%,A ; andm #0fffeh,ah sth A,RDXR ;portw out banz rrr,*ar7- ;反复1000h次 stm #1000,ar7 stm #4000h,ar6 stm #4500h,ar3 rsbx XF rete rrr stl b,*ar3+ ;没有滤波的放在AR3里4500H stl a,*ar6+ ; 滤了的数据放在AR6里4000H rete trans rsbx XF rete .end




关键词: 低通     数字     滤波器     程序     .word    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]