触摸屏的校准与坐标变换

 最近做了一点触摸屏的驱动工作,总结了一下,触摸屏的校准的核心其实就是坐标的变换问题。

下面将触屏校准的思路简单记录一下:

第一步,记录LCD的4个角上的Touch坐标值(不是LCD坐标值,而是Touch传出来的坐标值)

第二步,根据这4个点判断触屏的坐标原点的位置,思路如下:

1. 校准坐标值,即如果x1,x2,x3,x4中任意二者之间误差在某个值(如:20)以内,则将这二者置为一致;y坐标做一样的处理。

2. 得到最小的x,y值,找到(x,y)与4个角的哪一个重叠,如此就找到了原点。

找原点的示例代码如下:

 

第三步,判断触摸屏的坐标类型:

可能的坐标类型有8种,列举如下:

根据原点位置和4个点的坐标可以判断当前touch screen的坐标类型(其实就是知道触屏是怎么放的):

得到了当前触屏的坐标类型,LCD的坐标类型又是已知的(如:CS-0)就能知道3个信息:

1)X,Y坐标是否需要对调(坐标旋转)

2)X坐标是否需要折叠

3)Y坐标是否需要折叠

记住:坐标变换遵循先旋转,后折叠的计算方法

 

第四步,坐标值计算:

把其他坐标转换成CS-0类型的标准坐标的计算方法:

 

 xmax,ymax就是折叠轴。

 

第五步,坐标伸缩:

因为LCD尺寸像素与TouchScreen的采样值是不一样的,所以需要坐标伸缩:

 

好了,方法大概就是这样了,当然,最后还需要一个中心点来判断校准结果是否正确。。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值