原创 ADSP-EDU-BF531/BF533开发板教学视频第22集--触摸屏划线【Open ADSP开源社区】

2012-5-3 10:17 1299 10 10 分类: MCU/ 嵌入式

这一集里,我们把液晶屏模块、触摸屏模块相结合,实现了画笔的功能,这个小的应用里,加入了一个常见的触摸屏野点处理算法。这是我们从驱动升级到应用的一个小的跨越。

由于现在博客里暂时放不了视频,大家只能点击一下链接观看视频,讲义仍然放在博客中。

优酷链接:http://v.youku.com/v_show/id_XMzMwNDkyODg4.html

清晰版下载地址:http://115.com/file/dnodx35u    如需提取码,则是:dnodx35u

开发板链接:http://item.taobao.com/item.htm?spm=1103Qmdt.3-3dfNy.h-1Akvus&id=9026190872&

7.2 BF53x_TOUCH_LINE(屏幕画线)

7.21 代码实现功能

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

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

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

7.22 代码使用说明

触摸屏野点算法:

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

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

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

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;

}

7.23 代码实验步骤

1. 编译并运行代码

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

3. 观察液晶屏显示

 

7.24 代码实验结果

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


 

文章评论0条评论)

登录后参与讨论
我要评论
0
10
关闭 站长推荐上一条 /2 下一条