您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> BF51X技术支持专区 -> BF518/BF512的屏幕划线应用
本帖共有557个阅读者
发表帖子 发表投票 回复主题
BF518/BF512的屏幕划线应用
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5195
金钱:34806
积分:6378
注册时间:2011/6/7
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
BF518/BF512的屏幕划线应用

代码实现功能

代码实现了读取触摸屏坐标,并将触摸屏坐标换算为液晶屏的显示坐标,将像素点显示到触摸坐标的位置,实现了通过触摸屏在液晶屏上进行简单的线条绘画。

代码设置了防触摸屏坐标误触发机制,通过算法尽量减少触摸屏野点。使触发坐标更准确。

运行代码,通过用手指或者其他光滑的物体在液晶屏上划动,可以看到液晶屏上显示出划动的轨迹。

硬件平台

开发板:ADSP-EDU-BF518F   淘宝链接:http://item.taobao.com/item.htm?spm=a1z10.3.17.33.5317f8&id=14449990649

仿真器:AD-HP510ICE-FULL   淘宝链接:http://item.taobao.com/item.htm?spm=a1z10.3.17.17.4561b&id=8842330668

代码使用说明

触摸屏野点算法:

为确保触摸屏显示坐标准确,通常采用野点处理算法,代码中每次采取9个坐标点,然后对其取平均值和差值,排除偏离实际坐标较大的坐标值,将准确的坐标输出。

触摸屏坐标与液晶屏坐标换算:

X坐标换算:              tem_x = (tem_x-0xb0)*100/800;

Y坐标换算:              tem_y = (tem_y-0x150) *100/1288;

如感觉坐标定位不准确,可适当修改上面的换算参数值。

在指定坐标显示一个点:

因液晶屏最终显示的数据格式为RGB565,所以显示点的数据为16bit ,由两个8bit的数据分别送入。

void play_point(unsigned int x,unsigned int y,unsigned char *pdispbuf)

{

       pdispbuf[2*x+0+y*960] = 0xff ;

       pdispbuf[2*x+1+y*960] = 0xff;

}

代码实验步骤

1. 编译并运行代码

2. 用手指在液晶屏上划动

3. 观察液晶屏显示

代码实验结果

液晶屏上会显示出手指划动的轨迹。


我是OP...
等级:管理员 参考IP地址:*.*.*.*
2012/9/13 14:35:23
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.164440 Call, 1 Queries, Processed in 0.015625 second(s),