三、指令系统理解。
dsp指令如下:
add *0-,8,ar2;
设执行该指令前当前辅助寄存器指针,辅助寄存器以及数据存储器单元情况如下:
arp)=1, (ar0)=0x0010, (ar1)=0x0300, (ar2)=0x0310, (ar3)=0x0320,0x0010)=0x0000,(0x0300)=0x0002,(0x0310)=0x0004, (0x0320)=0x0008,
acc)=0x00000020
执行完该条指令后情况如何?请将正确数据填入下列方框中。
ar00x0010
ar10x0300
ar20x0310
ar30x0320
accarp
2. lf2407 dsp子程序如下:
filter:
lar ar2, #data_in+8
mar *,ar2
lacl #
spm 0mpy #
rpt #macd coeff, *
apacret
coeff:
.word 0ff80h,0284h,0655h,0999h,1888h,0999h,0655h,0284h,0ff80h
.data
data_in:
word 1, 4, 2, 8, 16, 64, 128, 32, 256
执行 call filter 指令后结果如何?请将正确数据填写到各下划线处。
ar21___
treg4___
preg) =0ff80h___
acc) =0ff8000h18880h
0ff80h
data_in: 1, 1, 4, 2, 8, 16, 64, 128, 32, 256
四、数据处理程序设计。
已知 根据递推公式:
可求得。试用f2407 dsp汇编语言完成下面的正弦波发生程序实现上述递推算法,计算sinkt,k=0,1,2,…99 共100项。(定点格式:符号|1位整数|14位小数)
cost .set _16352定义定点常数cost
sint .set _1029定义定点常数sint
singen:
spm __1__
lar ar2, #200h
lar ar3, #201h
mar *,ar2
splk #2*cost,*
lt *lacl #
sacl *,ar3
splk #sint, *
lar ar1, _#97__ 设置循环次数。
singen_loop:
mpyar2 ; 计算2cost*sinkt,结果存于preg
pacpreg)<<1 ->acc, 2:2:28->1:1:30格式。
sub *+16, ar3 ; 计算 2cost*sinkt – sin(k-1)t
add #0001h, 15 ; acc)+00008000h,用作乘积4舍5入。
sach __ar1 ; 保存 sin(k+1)t
banz singen_loop,__ar3 ; ar1>0,则减1并继续循环。
ret五、片上设备控制程序设计。
1、 用通用定时器2实现原程序中通用定时器1的功能,在需要修改的程序右。
边空白处写出修改后的指令。
2、 请在横线处填上注释或程序。
文件名称:timer_
include “
sect ".vect"
reset: b start
int1: b default_i
int2: b timer1_int (int2: b default_i)
int3: b default_i (int3: b timer2_int
int4: b default_i
int5: b default_i
int6: b default_i
default_i:
nopb default_i
.text
start::
call sys_ini
call pwm_ini
call timer1_ini
mainloop:
ldp #show/128
out show, 0004h ; 将欲显示值赋予io空间的0004地址。
b mainloop
sys_ini:
setc intm
clrc sxm
clrc ovm
ldp #wdcr/128
splk #00e8h, wdcr
splk #020dh, scsr1
ldp #ifr/128
splk #0002h, imrsplk #0004h, imr)
splk #0ffffh, ifr ; 执行完该指令后(ifr0
rettimer1_initimer2_ini:)
ldp #evaimra/128ldp #evaimrb/128)
splk #0080h, evaimrasplk #0080h, evaimrb)
splk #0ffffh, evaifrasplk #01cdh, t2per)
splk #01cdh, t1persplk #01cdh, t2per)
splk #0000h, t1cntsplk #0000h, t2cnt)
splk #164ch, t1consplk #164ch, t2con
clrc intm
ret timer1_inttimer2_int:)
ldp #num/128
lacc num
sub #bcnd timer1_lb1, neq
sacl num
lacc show
cmplsacl show
b timer1_lb2
timer1_lb1:
add #sacl num
timer1_lb2:
ldp # t1cnt/128
splk #0000h, t1cntsplk #0000h, t2cnt)
splk #0ffffh, evaifra ;
retpwm_ini:
ldp # mcrc/128
lacl #007eh
or mcrc
sacl mcrc
ldp # actrb/128
splk #0969h,actrb ; pwm低有效高有效。
splk #0ae0, dbtconb ; 插入 10 个cpu时钟周期的死区。
splk #100h,compr4 ; pwm输出的信号的占空比分。
splk #200h,compr5 ; 别为/4
splk #450好,compr6 ;
splk #0600h, t3pr
splk #8200, comconb
splk #0840h, t3con ; 通用定时器3器工作在连续增/减计数模式下
ret.data
num: .word 0
show: .word 0x00aa
.end
DSP技术复习答案
第一章习题。1.什么是dsp和dsp技术?答 数字信号处理和数字信号处理器二者的英文简写都为dsp。数字信号处理是信号的数字化及数字运算和变换的处理。数字信号处理器是一种适合完成数字信号处理运算的硬件芯片。dsp 一词常用来指数字信号处理器 dsp技术 和数字信号处理器相关的数字信号处理算法实现技术...
DSP期末试题与答案
一 填空题 1.dsp芯片的结构特点主要有改进的哈佛结构 低功耗设计高度并行性。多处理单元 特殊的dsp指令等。2 c54x dsp具有两个 40 位累加器。累加器a的 ag或32 39 位是保护位。3 软件中断都是由 intr k trap k 和 reset产生。4 tms320c54x片内有8...
DSP期末试题与答案
一 填空题 1.dsp芯片的结构特点主要有改进的哈佛结构 流水线操作 专用的硬件乘法器 快速的指令周期 低功耗设计 高并行度 多处理单元 特殊的dsp指令等。2 c54x dsp具有两个 40 位累加器。累加器a的 ag或32 39 位是保护位。3 软件中断都是由 intr k trap k 和 r...