CCS中GraphTimeFrequencySingle Time不得不知道的8点~(个人理解

更新时间:2024-04-20 19:16:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1 多久刷新一次图形,当连接实际目标板(非软仿情况)下具体是怎样的过程?

实际连接目标板时,多久显示一个点是由Sampling Rate决定的,它的倒数便是两点之间的显示间隔。有些参考资料上说每次刷新时显示图形的时间长度为

Display Data Size*(1/Sampling Rate),个人认为这样去理解增加了理解的难度,还不如理解为一个一个点的从Display Data抽出来,然后按Sampling Rate确定的时间间隔显示出来(注意,这不是示波器,是软件的图形窗口界面,显示出来便不会消失的,不要考虑CRT或示波器必须满足一定刷新率人眼才可看到完整图像的情况)。还有一点非常重要的它是以Sampling Rate所代表的个数作为一次操作单位的(如果没有这一点,Left-shifted Data Display便无法理解了,参看第2点),而不是以一点为一个操作单位的,但确实是可以理解为一点一点显示的。当然Sampling Rate也决定了Display Data从Acquisition Buffer中抽取数据的速率。

Sampling Rate表示1秒钟的时间里从Display Data Size中提多少个数据显示在图形上,当然这个Sampling Rate值是可以而且应该大于Display Data Size值的,因为就算Display Data Size的大小不够一秒内提取的数据量,它也可以不断从Acquisition Buffer去提取数据啊,由于可以不断提取数据量,所以能满足1S需要显示的数据量。

具体过程是这样的:当Display Data 里的数据被显示一个,它便从Acquisition Buffer中抽一个数据补足,补足在Display Data的哪个位置上,由Left-shifted Data Display确定(参看第2点)。而至于Acquisition Buffer,实际上就是内存中的一块区域,其起始地址由Start Address决定。

2 Left-shifted Data Display开不开关有何区别?

要了解这个,必须知道显示的过程(上面已叙述),这里举例来说:

①假如Sampling Rate是5Hz, Display Data Size是10,Acquisition Buffer Size大小也是10,Display Data Size中的数据从第1个开始编号到10,那么第一秒内便从Display Data Size中依次取1号到5号的5个数出来显示,在显示的过程中,显示的数据就要作废了,所以一边显示一边就依次就要从Acquisition Buffer中提数据来补充。此时如果Left-shifted Data Display没有开启,那么从Acquisition Buffer调取来的新的数据便会直接去填补作废的空位,即1号到5号位,下一秒内显示的数据则是这新来的5个数据,于是最初的6号到10号的数据便一直得不到显示。而如果开启Left-shifted Data Display功能,那么Display Data会把原来6号到10号的数据移到1号到5号的位置,而新进的数据填在原来6号到10号的位置,下一次显示时就显示现在1到5号位置上的数据,即原来6号到10号位置上的数据。

②假如Sampling Rate是10Hz, Display Data Size是10,那么显然Left-shifted Data Display开与不开效果都是一样的。 ③Sampling Rate如果大于Display Data Size,那么显然Left-shifted Data Display开与不开效果也是一样的。 ④……明白了上面的原理,其它情部下自己都可以推导出来了

3 软仿模式和真实情况下的工作情况是完全不一样的。事实上,软仿模式中的Sampling Rate和Display Data Size根本就不用设定,只需要把Acquisition Buffer,Start Address,Left-shifted Data Display和DSP Data Type设置好就OK了!为什么我这样说呢?且看以下的程序,Graph设置和具体的图形。

void main(void) {

for(j=0;j<5;j++) i++; }

按上面的设置,1秒中只能显示两个点,但是程序是跑得很快的,怎么可能在5秒内才跑完嘛。所以是不可能搜集到程序中描述的5个变化点的。所以我大胆推测在软仿时它是程序跑完之后根据软件记录下的要观察的变量在整个程度运行中的变化,再绘出的Graph图,或者根据程序直接画出图的。事实上这个图与你的Sampling Rate与Display Data Size根本无关。只有实际连接硬件时,Sampling Rate与Display Data Size的设置才有用。另外,从图中我们可以看出其实一共有5个点的,而Sampling Rate是2Hz,所以5*(1/2)=0.25秒就应该显示完的,但是它这里却用了0.5S,同样可以证明Sampling Rat是形同虚设的。

4 如果Display Data Size大于Sampling Rate,并且Left-shifted Data Display在开启的情况下,图形上会出现一段无用空值。实际连接硬件目标板时,一般Sampling Rate都是很高的,因为数据变化率是很化的嘛,而Display Data Size又比较小,所以实际连接硬件目标板时这点不用担心,只是在软仿时要注意。第3点说过软仿的图形与Sampling Rate是无关的,所以有可能你的Sampling Rate设的很低,所以要注意下。

5 怎样显示串行数据? 这个要分两种情况:

①串行数据被按顺序存储在内存一块区中,这样的话就是通常的操作方法。

②串行数据是一个变量,而非数组,即在内存中不是一个区域,此时就要把从Acquisition Buffer的大小设为1了,因为只有一个存储地址嘛。因为Display Data Size是不允许为1的,至少为2,所以要完整显示串行数据,必须把Left-shifted Data Display开启。

6 要观察的变量最好放在全局变量中,否则老是提示找不到变量,而且也没有图形。

7 若是用C语言表示的变量,那么Start Address的规则如下: 如果是数组,那么填上数组名即可 如果是变量,比如要显示i变量,那么写&i

8 从Acquisition Buffer中提取数据的速率取决于Sampling Rate

本文来源:https://www.bwwdw.com/article/q6tp.html

Top