⑴ DSP用什么软件做
DSP芯片生产商都有自己的编程软件集成开发环境,如果是TI的DSP,可以用CCS来编写调试代码。如果是达芬奇系列,除了CCS,可以用CE(code engine)来编译调试代码
⑵ DSP C 语言编程
在DSP C语言编程中,我们通常会遇到一些与定时器相关的操作。例如,我们可能需要设计一个时钟定时程序。在这个过程中,我们通常会使用一个无符号的十六位整数来定义计数器。
具体来说,我们可能会定义一个名为Uint16的数据类型,用于表示无符号的十六位整数。然后,我们需要使用一个特定的寄存器来设置定时器的分频系数。这个寄存器通常被称为TDDRH:TDDR寄存器。通过将TDDRH设置为一个特定的值,我们可以使定时器在每个时钟周期中减一。
当TIMH:TIM寄存器的值递减到零时,就会触发一个中断信号,这个信号被称为TINT。当这个中断发生时,就会自动装载另一个寄存器PSCHSC中的值到TIMH:TIM寄存器中。这个过程可以确保定时器可以重复计数,从而实现定时功能。
在实际应用中,我们可能会需要根据具体的需求来调整定时器的分频系数和周期值。这通常需要我们深入理解DSP C语言编程的相关知识和定时器的工作原理。通过合理设置这些参数,我们可以实现各种复杂的功能,如定时任务的执行、信号的产生等。
⑶ DSP汇编编程
.global start ; 定义全局标号
.sect ".resect"
B start
.text
.bss x,1 ;三个变量各为一个字(16位,非初始化段)
.bss y,1
.bss z,1
.textstart:
ldp #0 ;因下面诸变量使用直接寻址,装载DP值
splk #5,x ;变量赋初值,x=5
splk #6,y ; y=2
lacc x ;将x的值装载至累加器
add y ;累加器加上y的值
sacl z ;将累加器结果(32位)的低16位存放到变量z
ldp #4 ;直接寻址,装载DP值,页指针指向片内数据区DARAM B0
splk #1,1 ; 绝对地址201H开始的四个单元存1,2,3,4
splk #2,2
splk #3,3
splk #4,4; 以下使用间接寻址将201H开始的4个单元的数
; 转存到300H开始的4个单元 lar ar0,#201h ; 源起始地址存在辅助寄存器0
lar ar1,#300h ;目的起始地址存在辅助寄存器1
lar ar2,#3 ; 循环计数值为移动数-1
mar *,ar0 ; 设置当前辅助寄存器为ar0loop1: ;开始循环搬移数据
lacc *+,ar1 ;将当前辅助寄存器(ar0);所
;指向的数据内存单元的值装载到acc,
; ar0加1,设置当前辅助寄存器为ar1
sacl *+,ar2 ; acc低16位存放到当前辅助寄存;器(ar1)指定的单元
ar1加1,设置当前辅助寄存器为ar2
banz loop1,ar0 ; 当前辅助寄存器(ar2)如果不等于0则当前辅助寄 存器(ar2)减1,转loop1xh: B xh ; 空循环
.end