您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> [求助]用BF531在TFT上显示图形的疑问
本帖共有892个阅读者
发表帖子 发表投票 回复主题
[求助]用BF531在TFT上显示图形的疑问
blackfin(论坛游民)
blackfin
头衔:社区公民
帮派:无帮无派
帖数:114
金钱:1105
积分:153
注册时间:2011/6/10
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
[求助]用BF531在TFT上显示图形的疑问

我现在可以在TFT(320 x 240)上绘制简单图形,但是有一个疑问想不通。

1. 如果在TFT上划分一个(140 x 50)的空间为图形显示区,然后把从远程接收到的数据(数据量为8 ~ 512K个点,类型为short)显示到此区域。对于小于140点时,接收到8个点怎么显示成140个点,多于140点时呢?是不是在小于140个点是采用插值,在多于140点是采用插样140个点?如果这样又有问题2。

2. 如果收到200个点,这时要怎么抽样到140点呢?如果每隔一点抽样那只能抽到100个点,那剩下的40点怎么产生?(注:接收到的波形数据不一定是周期数据)

谢谢各位大侠啦!好晕啊!


这家伙很懒,什么也没有留下!
等级:论坛游民 参考IP地址:*.*.*.*
2011/6/30 22:09:46
雨月狂澜(论坛新手)
雨月狂澜
头衔:社区公民
帮派:无帮无派
帖数:3
金钱:124
积分:4
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

你可以这样做,开一个140*50的buffer,把这个buffer与液晶屏显示buffer对应好,即只要往140*50这个buffer中写数据,通过copy或者指针切换的方法将数据输出到液晶屏上可以正常显示。

你接收的数据你必须知道他要在液晶屏上显示在什么位置,位于140*50 buffer 中的位置。然后将接收的数据直接填充到对应的buffer位置中即可。发送的图形数据你必须知道它是什么格式和位于图形的位置,你才能做到正确显示,这个必须协议定死。你也可以规定每次接收的数据必须是140*50的倍数,并且数据本身就是一个图形数据,这样方便一点。

对于超出的数据,超出的部分是否为下一行的数据,如果不是就舍去,是的话不用管他,你开得buffer本身就是连续的空间,自动显示下一行。

建议你发送和接收的数据都是整帧,这样你操作方便点,不需要做过多的判断。



这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2011/7/1 12:41:55
blackfin(论坛游民)
blackfin
头衔:社区公民
帮派:无帮无派
帖数:114
金钱:1105
积分:153
注册时间:2011/6/10
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

感谢楼上的回答!可能我讲的不是很清楚。我接收到的数据是一些波形的点。不是图片的数据。我是想把接收到的波形点数据在TFT上用两点画线的方式重现出来。打个比方电脑发送一个三角波的数据(200个点)给DSP,DSP接收后把其显示到TFT上(140 x 50)。有可能收到最多点为512K个点,这时要怎么抽取数据点为140个点,从而在TFT上通过两点间画线方式重绘出来,让其在TFT上显示的波形跟上位机软件上的一样,而只是缩小了。


这家伙很懒,什么也没有留下!
等级:论坛游民 参考IP地址:*.*.*.*
2011/7/1 19:35:01
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

如果是想将数据以线条数据描述在屏上,需要写几个描点函数,还要建立一个坐标体系,大概需要的函数有:

1.坐标体系建立,根据给定的数值,顺序找到在屏幕上的坐标点。比如给出几个给数值为:5,20,10,6,15...

这些数值需要在屏幕上什么位置显示要做好顺序对应,需要个函数计算出这些值对应的屏幕点坐标。

2. 两点连线,给定两点数据,自动计算出需要连接线的屏幕点的坐标,计算出连线经过的坐标点,这个函数应该网上有,你可以找找类似的。

3.建立一个数据坐标连线函数。根据上面的连线函数,需要封装一个连续描点的函数,比如给定一组作标值,可以连续描点连线。必要的话可以设定描点个数和X坐标间隔数,以描述不足140个点的数据。

4. 还要有对数据做筛选的函数,比如你有200个数据,需要筛选140个数据,有一种简单的筛选方法,用200/140的比率来取数据,200/140 = 1.42 ,你要取的数据即为1.42*n ,然后将相乘的值保存为一个定点数据,即可从中筛选数据。例:你要取140个坐标中的第80个数据,80*1.42 = 113.6,保存成整形后为114,所以这个数据位于原始200个数据的第114位。

5. 对于接收8个数据显示为140个点,可以进行判断,如果数据量小于140,需计算描点数据的坐标间隔,140/8= 17.5, 大概间隔18个点,这样你可以计算出描点函数的X坐标,将数据转为Y坐标利用画点函数来描点。





这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2011/7/1 20:10:56
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.154299 Call, 1 Queries, Processed in 0.046875 second(s),