程序清单:
.title “FIR1.ASM”
.mmregs
.def start
x .usect “x”,8
PA0 .set 0
PA1 .set 1
.data
COEF: .word 1*32768/10
.word 2*32768/10
.word -4*32768/10
.word 3*32768/10
.word -4*32768/10
.word 2*32768/10
.word 1*32768/10
.text
start: SSBX FRCT
STM #x+7,AR2
STM #6,AR0
LD #x+1,DP
PORTR PA1,@x+1
FIR1: RPTZ A,#6
MACD *AR2-,COEF,A
STH A,*AR2
PORTW *AR2+,PA0
BD FIR1
PORTR PA1,*AR2+0
.end
用循环缓冲区实现FIR滤波器
程序清单:
.title “FIR2.ASM”
.mmregs
.def start
.bss y,1
xn .usect “xn”,7
b0 .usect “b0”型谨运,7
PA0 .set 0
PA1 .set 1
.data
table: .word 1*32768/10
.word 2*32768/10
.word 3*32768/10
.word 4*32768/10
.word 5*32768/卜梁10
.word 6*32768/10
.word 7*32768/10
.text
start: SSBX FRCT
STM #b0,AR1
RPT #6
MVPD table,*AR1+
STM #xn+6,AR2
STM #b0+6,AR3
STM #7,BK
STM #-1,AR0
LD #xn,DP
PORTR PA1,@xn
FIR2: RPTZ A,#6
MAC *AR2+0%,*AR3+0%,A
STH A,@y
PORTW @y,PA0
BD FIR2
PORTR PA1,*AR2+0%
.end
链接命令晌者文件
FIR2.obj
vectors.obj
-o FIR2.out
-m FIR2.map
-e start
MEMORY
{
PAGE0:
EPROM:org=0E000h,
len=1000h
VECS: org=0FF80h,
len=0080h
PAGE1:
SPRAM:org=0060h,
len=0020h
DARAM:org=0080h,
len=1380h
}
SECTIONS
{
.text:>EPROM PAGE 0
.data:>EPROM PAGE 0
.bss :>SPRAM PAGE 1
xn:align(8){}>DARAM PAGE 1
b0:align(8){}>DARAM PAGE 1
.vections:VECS PAGE 0
}
xiexie
可以的。1、一般采用现成的DSP板(自己做板价格更高、而且还有风险),做算法还是配置高一些为好,推荐TMS320C6000系列DSP芯片。
2、接下来就是用C语言实现算法(这纤丛种程序可以搜一搜,下载,改改就是);
3、通过仿真器将程序下载至DSP板,调试,一般要用到CCS6000仿真程序;
4、调试成功后,将调试成功的程序写入裂锋DSP的肆竖晌FLASH存储器即可。
当然,说起来容易,调试起来可是要经验和耐心的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)