dsp由于上电复位之后,IER和IFR清零
DINT写那里都一样的。
定时器预定标计数器TPR的设置
此计数器为32位。其低16位为PSC:TDDR,高16位为PSCH:TDDRH。
由PSCH:PSC组成定时器预定标计数器,保持定时器的当前预定值。PSCH:PSC减到0后则为一个定时器时钟周期。
由TDDRH:TDDR组成定时器分频值。即每过(TDDRH:TDDR+1)个定时器时钟源周期(SYSCLKOUT),定时器计数器寄存器(TIMH:TIM)就减1。
而(TIMH:TIM)的初始值由定时器周期寄存器PRD的值装入。
由此可知,定时器中断周期的实际值为:
Ttimer = SYSCLKOUT ( TDDRH:TDDR+1 ) ( PRDH:PRD )
此时的SYSCLKOUT为时间值
即
Ftimer = SYSCLKOUT / (TDDRH:TDDR+1 ) / (PRDH:PRD )
此时的SYSCLKOUT为频率值
例如,本程序中,SYSCLKOUT = 1 / ( 6010^6 ),且定时器初始化时设置如下:
CpuTimer2RegsPRDall = 0x0000258;
CpuTimer2RegsTPRall = 0;
CpuTimer2RegsTPRHall = 0;
则TDDRH:TDDR = 0,而PRDH:PRD = 0x258 = 600,
所以此时Ftimer = ( 6010^6 ) / 1 / 600 = 100000 = 100 K
用的都是CCS编程。
CCS有两种工作模式:
1软件模拟器模式:可以从DSP芯片中分离出来,在PC上模拟DSP的指令集和工作机制,主要用于前期算法的实现和调试。
2硬件在线编程模式:在DSP芯片上实时运行,将应用程序的在线编程和调试与硬件开发板集成。
CCS的开发系统主要由以下组件构成:
1TMS320C54x集成代码生成工具;
2CCS综合开发环境;
3DSP/BIOS实时内核插件及其应用程序接口API;
4实时数据交换RTDX插件及相应的编程接口API;
5由第三方TI公司对外提供多种应用模块插件。
扩展资料:
dsp编程中双重循环、多重循环的优化:
(1)多重循环拆成单层循环,减少循环层数;
例如,双重循环内一个百cycle只使用了一个乘法器,拆成单层循环后,一个cycle可使用2个乘法器,充分利用DSP乘法器资源,同时运算速度也会加快;
(2)如果循环次数较少,则将其放入外循环;如果循环次数更多,则将其放入内存循环;
(3)二维数组的双环:二维数组的行循环置于外环,列循环置于内环;
(4)避免循环内的乘除 *** 作:循环内的乘除 *** 作移到循环外,由加法代替。
DSP使用时一般是:DSP开发板+仿真器,实际中可能还需要一些其它外围的小配件。
仿真器作用:主要是通过仿真器将DSP开发板与电脑连接,这样所编写的程序才能写入DSP芯片,以及在计算机上通过(CCS)调试DSP开发板,没有仿真器几乎做不了什么(高手可能出外),现在仿真器一般都是USB借口的,比如TDS510增强型DSP仿真器等等,可以对各种系列DSP使用。
开发板按照板上的DSP芯片信号又分为:2000系列(一般自动控制用),5000系列(一般数字信号处理用),6000系列(一般图像处理用)
初学者我建议你买《手把手教你学DSP》。这本书非常适合于初学者,我就是用这本书学的,而且在他们论坛上有全套视频教程。我可以这么告诉你,你只用买这一本书就够了,完全可以掌握2812的所有外设模块。当时我用一个星期的时间将所有视频看完,然后拿公司的开发板写一下基本程序,大概一个月就掌握的差不多了。
ps:说实在的,我不建议拿dsp开发项目,我比较推荐stm32,有以下几点原因:
dsp太贵,一块片子近200快,arm7才十几块钱。
dsp太娇气,你看dsp的硬件电路就会发现它所用的电容比一般的MCU要多(为了稳定电源电压),很容易出现硬件问题,不适合初学者,很容易让人郁闷。相对于的51单片机就比较皮实,5v供电,差一点没有关系,基本都能工作。只要不将电源和地接反就不会烧。
arm7里面功能模块比dsp要多很多,基本上开发一个项目是没问题的。
dsp有个特有的cmd文件需要人工手动编写(代码少的就不用了,直接用通用的就行),用来分配代码和数据的存储空间,还分为固化到flash上的cmd文件和调试在ram上的cmd文件。按理说这种很底层的东西不应该由开发人员来做而是由编译器完成的。而且将程序固化的flash中还没完,因为代码在ram中运行速度比在flash中快,所以你将代码固化到flash中之后,运行速度没有在调试时快。这时又涉及到代码搬移的问题,即代码存放到flash中,开机运行的时候将代码搬到ram中运行。这个过程也有点小小的复杂,当时我将代码写完,就为了将代码固化到flash中就废了好长时间。记得有一次我不小心将一个段放到密匙区了,结果莫名其妙的dsp就锁死了。查资料整了半天,最后将机器码都搞出来了,在一大堆数据中终于找到了密匙。相比较之下,arm7你写完程序,点击一下下载,就完事了。没有这么多条条框框。
dsp的编译环境ccs界面相比较keil而说也逊色了不少。
说了这么半天,好像没说dsp的优点。dsp当然有优点了,人家主频就是高、速度就是快,运算能力就是强。其实stm32的主频最高也有72M了,我觉得速度要求不高的话,可以考虑考虑。
总之,你用完dsp之后,你就会发现其他的cup用起来怎么这么easy呢?
答案:
1、CCS33是一个开发环境,不能够跑程序,程序弄好了要在芯片里面运行才能够有效果,如果不是直接下载,想在线调试(可以说在线硬件仿真),需要XDS100或者XDS510仿真器(更高级的XDS560 PLUS等等),一根JTAG连接线连接至DSP+一根USB连接线连接至PC;
2、开发Hello world 这个如果需要跑 *** 作系统,还是需要很多学习的,但如果裸机加一个液晶也是可以做出hello world的,即通过SPI接口连接一块12864液晶,通过发送指令发送数据就能达到,看你的需求。
over
以上就是关于关于dsp2812 编程的一点点一问全部的内容,包括:关于dsp2812 编程的一点点一问、dsp用什么编程_dsp用什么编程语言、简述dsp的硬件仿真步骤等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)