
图3 主程序流程图
4.3 触摸屏与LCD显示器坐标的换算和Microwindows编程实现
本设计采用microwindows0.90版本,编写程序时,不必关心底层的驱动,直接调用上层的API.而不需编写底层的驱动.这里采用的方法是在microwindows中编写对应于触摸屏串口接收程序,然后比较microwindows窗口坐标和串口数据中的坐标值,如果在一定范围内,则产生一个相应的事件[2]。 用一个数组来接收串口送过来的数据,再从数组中取出触摸屏的位置信息。触摸屏的坐标原点及分辨率都不同,这也需要进行转换。具体转换的公式为:
我们设触摸屏如下:右下角为原点坐标(x1,y1),横轴为x轴,竖轴为y轴,右上角坐标(x1,y2),左上角坐标(x2,y2),右上角坐标(x2,y1),分辨率为4096×4096;ARM7所接LCD的坐标原点在左上角,横轴为x轴,竖轴为y轴分辨率为640×480,则我们的坐标转换公式为:
xLCD=640-[640×(x-x1)/(x2-x1)] (4-1)
yLCD=480-[480×(y-y1)/(y2-y1)] (4-2)
因触摸屏的分辨率为4096×4096,则x2-x1和y2-y1的值均为4096;坐标转换公式为:
XLCD=640-640×z1/4096; (4-3)
YLCD=480-480×z2/4096; (4-4)
其中,公式中的z1,z2坐标为触摸屏坐标,它的获取方法:由数组buffer[ ]接收串口送来的数据,我们要从数组中取出有用的坐标信息。
0
顶一下 0
踩一下
顶一下 0
踩一下
相关文章
用户评论
已有0位网友发表了看法



发表评论