本帖最后由 qaz098xsw 于 2017-10-15 10:43 编辑
关于ccs3.3图形显示的理解
我们在做一个项目时,往往习惯于把程序按不同的功能分成不同的功能模块,在调试的时候,可以单个模块的测试。但单个模块往往只是算法层次的运算,我们想看看某个模块运行后的结果是否符合自己的要求,这时候示波器就显得无用武之地了,这个时候Graph的作用就显得尤为重要,相比较which window查看变量来说,它会给你做出最直观的显示。
(当然这两者结合看会更好)。
此处只介绍Time/Frequncy 的使用。
我们通常需要监控的有两类,分别为数组和变量,现分别说明之。(忘了一点,在设置Time/Frequncy之前程序应该已经下载到目标板,RESET CPU ,RESTART,GO TO MAIN)
第一步,设置断点
在说到Time/Frequncy得设置之前,首先说下程序中需要做的事情,那就是添加断点。
本人喜欢在中断程序中添加断点(软中断,双击语句左侧可出现红色点),这样的好处是既可以观察到程序是否进入了中断,而且可以实现在断点处数据的更新。(如果不设置断点Time/Frequncy是不可用的,这是尤其需要注意的!!!)
第二步,设置Time/Frequncy菜单(以常用的几个选项为例)
1.Display Type 显示类型,常用的两个选项分别为single time (单通道),Dual Time (双通道)。选择单通道模式,则画面只显示一个图形,选择双通道模式,画面显示两个通道的图形,也即分别可用来监控一个或两个变量(数组)。
注:上面所说的是一个弹出画面,当然你可以实现多个弹出画面监控更多的变量了!双通道的实现,能够为图形的对比提供很直观的现实,如在生成Ualpha和Ubata时,可以很方便观察到两个图形相差Pi/2。
2.Graph Title 此处定义图形框的标题栏,比如,当你监控旋转矢量的时候,标题定义为Vout&Angle
3.Start Address 变量的地址,这是非常关键的一步!
分监控变量和数组来说明
A:当监控的为数组时,一般我们用数组来存变量的值,也就是自己做了个变量的缓冲区,缓冲区的长度即为数组的长度,变量的值先存到数组形式的缓冲区中。
这个时候Address 处写数组名就可以,学过C语言的大家都清楚,数组名即为首地址是个地址常量,不同于指针。
B:当监控的为变量时,变量的地址如何获得呢?大家当然想到了取地址符&,对就用它就可以了,&变量名,如我要监控的变量为out,那么此处为什么呢?当然是&out了。
4. Page 此处基本都是Data(跟地址的分区有关,由于DSP采用哈佛结构,地址映射为data , program和IO,与CMD文件对照理解可以了解深入些)
5. 下面到了另一个比较重要的地方了,那就是Acquisition Buffer Size
这个要与第3点结合才能理解清楚,
A:当是数组时(数组存的是一个变量的不同时刻的值),设置为数组的大小n,当然你也可以设置为1-数组大小n之间的数值,但很显然你会丢失一部分数据了,我们不会这么做吧我觉得,呵呵。
B:当是变量时,那就是1了,而且我觉得只能是1(也就是当前的意思)
6. Display Data size
它的意思就是我们在画面上要显示的数据的个数,与横坐标的长短有关了,你设置的这个量越大则显示的数据越多,我一般设置为1000,即显示1000个点
7.DSP Data Type
这个也是很重要的选项啊!你要是类型没选对,那显示的数就肯定不对了(我习惯与whatch window中变量一块看,这样能看出是否自己设置的对否)
8.未说到得就默认吧,呵呵!点击ok,然后Animate,就可以了,图形上应该就有你要监控的变量了吧
|
|
|
|