发布时间 : 星期四 文章DSP测试题及答案更新完毕开始阅读f2ef3e50195f312b3069a57f
15. FIR滤波器的算法为y(n)= a0x(n)+a1x(n-1)+a2x(n-2)+a3x(n-3)+a4x(n-4),试用线性缓冲
区和直接寻址的方法实现。 答: .title “FIR1.ASM” .mmregs .def start x .usect “x”,5 PA0 .set 0 PA1 .set 1 .data
COEF:.word 1*32768/10 ;定义a4= 0.1 .word -3*32768/10 ;定义a3= -0.3 .word 5*32768/10 ;定义a2=-0.5 .word -3*32768/10 ;定义a1= -0.3 .word 1*32768/10 ;定义a0=-0.1
.text
start: SSBX FRCT STM #x+5,AR2 STM #4,AR0 LD #x+1,DP PORTR PA1,@x+1 FIR1: RPTZ A,#4
MACD *AR2-,COEF,A STH A,*AR2 PORTW *AR2+,PA0 BD FIR1
PORTR PA1,*AR2+0 .end
16. 试用线性缓冲区和间接寻址的方法实现上题算法的FIR滤波器。 答: .title “FIR2.ASM” .mmregs .def start .bss y,1 xn .usect “xn”,5 b0 .usect “a0”,5 PA0 .set 0 PA1 .set 1 .data
table: .word 1*32768/10 ;定义a4= 0.1 .word -3*32768/10 ;定义a3= -0.3 .word 5*32768/10 ;定义a2=-0.5 .word -3*32768/10 ;定义a1= -0.3 .word 1*32768/10 ;定义a0=-0.1 .text
start: SSBX FRCT STM #a0,AR1 RPT #4
MVPD table,*AR1+ STM #xn+4,AR2 STM #b0+4,AR3 STM #5,BK STM #-1,AR0 LD #xn,DP PORTR PA1,@xn FIR2: RPTZ A,#4
MAC *AR2+0%,*AR3+0%,A STH A,@y PORTW @y,PA0 BD FIR2
PORTR PA1,*AR2+0% .end
17. 试分别说明下列有关定时器初始化和开放定时中断语句的功能: ①STM #0080H,IFR
答:清除定时器中断1标志位 ②STM #0080H,IMR
答:允许定时器T1或DMAC1中断(使用哪一种中断由DMA通道优先级和使能控制寄存
器DMPREC控制。在复位以后,中断被配置为定时器T1中断)。 ③RSBX INTM
答:使能所有可屏蔽中断。 ④STM #0279H,TCR 答:设置定标计数器的值PSC为9;定时器分频系数为9;以PRD中的值加载TIM,以TDDR中的值加载PSC;定时器停止工作。
18. 假设时钟频率为40MHZ,试编写在XF端输出一个周期为2ms的方波的程序。
答:(定时半周期=CLKOUT*(TDDR+1)*(PRD+1); 1/2T=(1/40M)*(9+1)*(3999+1)=1ms)
;abc1.asm
;定时器0寄存器地址
TIM0 .set 0024H PRD0 .set 0025H TCR0 .set 0026H
;K_TCR0:设置定时器控制寄存器的内容 K_TCR0_SOFT .set 0b ;Soft=0 K_TCR0_FREE .set 0b ;Free=0 K_TCR0_PSC .set 1001b ;PSC=9H K_TCR0_TRB .set 1b ;TRB=1 K_TCR0_TSS .set 0b ;TSS=0 K_TCR0_TDDR .set 1001b ;TDDR=9
K_TCR0 .set K_TCR0_SOFT| K_TCR0_FREE| K_TCR0_PSC| K_TCR0_TRB|
K_TCR0_TSS| K_TCR0_TDDR ;初始化定时器0
;Tt=25*(9+1)*(3999+1)=1000000(ns)=1(ms) STM #3999,TIM0 STM #3999,PRD0
STM #K_TCR0,TCR0 ;启动定时器0中断 RET
;定时器0的中断服务子程序:通过引脚XF给出
t0_flag .usect “vars”,1 ;若t0_flag=1则XF=1,若t0_flag=0则XF=0
time0_rev: PSHM TRN PSHM T PSHM ST0 PSHM ST1
BITF t0_flag,#1 BC xf_out,NTC SSBX XF
ST #0,t0_flag B next xf_out: RSBX XF
ST #1,t0_flag next: POPM ST1 POPM ST0 POPM T POPM TRN RETE
19. 试分别说明下列语句的功能: ①STM #SPCR10,SPSA0 STM #0001H,BSP0
答:对串口控制寄存器SPCR10赋值。不使用数字循环返回模式,接收数据DRR[1,2]采用
右对齐方式,连续时钟方式,DX使能判断,接收中断由RRDY产生,接收移位寄存器未超载,串口接收器准备好,使能串口接收器。 ②STM #SPCR20,SPSA0 STM #0081H,BSP0 答:对串口控制寄存器SPCR20赋值。串口使用软件模式,帧同步逻辑、采样率发生器复位,
由发送准备好XRDY驱动发送中断;发送移位寄存器为空,发送器未准备好,使能串口发送器。
③STM #SPCR20,SPSA0 ORM #01000001B,BSP0 答:修改串口控制寄存器SPCR20的值。由采样率发生器产生帧同步信号,使能串口发送器。
20. 已知中断向量TINT=013H,中断向量地址指针IPTR=0111H,求中断向量地址。 答:中断向量地址=(100010001B)<<9+(10011)<<2=88CCH。
21. 将TMS320VC5402芯片从2分频方式切换到4分频方式试编写程序。 答:(2分频与4分频之间也不能直接切换,要先把2分频切换到倍频方式(PLL方式),然
后再切换到4分频。)
STM #F007H,CLKMD ;切换到PLL*1方式
Status: LDM CLKMD,A ;测试PLLSTATUS位
XOR #F007H,A ;异或-->相同为0,不同为1
BC Status,ANEQ ;若A≠0,则转移,表明还没有切换到PLL方式
;若A=0,则顺序执行,已切换到PLL方式
STM #F000H,CLKMD ;切换到4分频方式
一、填空题
1. 在DSP处理器中,数据地址的产生是由(数据地址发生器)来完成的。
2. TMS320C54x的累加器分别称为(累加器A)和(累加器B),它们的数据宽度是(40)
位。
3. TMS320C54x 的DSP采用先进的(哈佛)结构,其独立的(程序)总线和(数据)总线
允许同时读取(指令)和(操作数),实现高度的并行操作。
4. TMS320C54x的通用I/O引脚有(跳转控制输入引脚BIO )和(外部标志输出引脚
XF)。
5. 指令MPY 0Dh, A中乘数和被乘数分别在( 累加器B高16位 )和(累加器A)中。 6. TMS320C54x有(3)个状态和控制寄存器。