新闻  |   论坛  |   博客  |   在线研讨会
四线电阻触摸屏校准算法的实现
fwjie | 2012-02-19 11:07:03    阅读:2417   发布文章

 
 

四线电阻屏的触摸板坐标和屏坐标有如下关系:

 X0 = xfac * X + xoff;
 Y0 = yfac * Y + yoff;
其中X0,Y0是屏的物理坐标,xfac,yfac为x,y方向的比例因子,xoff,yoff为x,y方向的偏移量.
既然说到了校准,那么这四个量肯定是不变的,所以我们可以用至少两个屏的物理坐标点就可算出这四个量,也即是两点校准法,由于按下屏后读出的是X,Y值,而校准时用的X0,Y0也是已知的,那么就是解四元一次方程组了,算法如下:

     (X1,Y1)和(X2,Y2)是用于校准时屏上显示的两个点,这两个点的坐标必须不一样,是已知的;
     (x1,y1)和(x2,y2)是校准时读取的被按下的两点的触摸板坐标值;

有如下方程组:
     X1 = xfac * x1 + xoff;     // 1
     Y1 = yfac * y1 + yoff; // 2
     X2 = xfac * x2 + xoff; // 3
     Y2 = yfac * y2 + yoff; // 4

解得:
    3 - 1 得xfac = (X2 - X1)/(x2 - x1);   //得到x轴方向的比例因子
    3 + 1 得xoff = [(X2 + X1)-xfac(x2 + x1)]/2;         //得到x轴方向的偏移量
    4 - 2 得yfac = (Y2 - Y1)/(y2 - y1);   //得到y轴方向的比例因子
    4 + 2 得yoff = [(Y2 + Y1)-yfac(y2 + y1)]/2;  //得到y轴方向的偏移量

OK! 所谓的三点触摸校准,四点触摸校准只不过是加了可靠的滤波算法,因为触摸笔和屏的接触不是很准确的!而像素点是很小的,所以通常都用四点校准,而且经验证这此算法是必须加的,否则很不准,参见STM32学习笔记相关实验实验例程,已验证通过。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客