1.触摸屏校准原理
之前点的触摸屏解析出来的ADCDATA的bit[9:0]表示坐标ADC的转换结果,那么这些结果都是通过电压值来转换过来的。
所谓触摸屏校准,就是让触摸屏坐标(电压值)与LCD的坐标能够对应起来,所以校准就是要找到一个公式把电压值转换成和LCD宽高相符合的坐标值。
如下图,上面一层膜是TS触摸屏,下面一层是LCD显示屏,如果我们的LCD size是480*272,那么当我们点击触摸屏上的原点,那它的坐标可能不是(0,0),而是(X1', Y1'),因此我们需要对触摸屏进行校准,期望把x', y’的坐标能够映射成和lcd一样的坐标0,0.
那么如何较准呢,如下图以X方向为为例。
如果触摸屏的x坐标区间为[x1', x2'], LCD的x坐标区间为[0, 479].那么我们期望把[x1',x2']映射到区间为[0, 479]。如何映射:
如下图以X方向为为例。假设我们在LCD上显示两个点,那分别对应的横坐标为x1, x2.
那么当我们在触摸屏上对应的位置点击该两个点时,那么对应的触摸屏产生的横坐标分别为x1',x2',那这个坐标是实际ADC转换出来的坐标,那可能和实际lcd坐标x1, x2不一致。由于我们的触摸屏的坐标是线性变化的,所以有公式如下:
x = (x2 - x1)/(x2' - x1') * (x'-x1') + x1
(x2 - x1)/(x2' - x1')表示长度比例
x1和x1'分别表示LCD和触摸屏的原点坐标
x'表示触点的实际触摸屏坐标
x表示LCD的实际坐标
举个例子:
①长度比例=1
假设lcd显示的两点x1 = 200, x2=400。然后当触摸屏点击x1', x2'位置时产生的TS实际坐标为240, 440
那如果我在中间再次点击一个点,对应lcd的x = 300,对应触摸屏的 x'=340.
那么我们就需要用到这个长度比例来换算出期待的(校准后的)触摸屏坐标
长度比例 =( 400 -200 )/( 440- 240) = 1
x期望 = 长度比例 * (340 - 240) + 200 = 300
这样就校准出来了理想的触摸屏坐标x期望 = 300.
②长度比例不等于1
假设当触摸屏点击x1', x2'位置时产生的TS实际坐标为240, 360
那如果我在中间再次点击一个点,对应x = 300, x'=300.
那么我们就需要用到这个长度比例来换算出期待的(校准后的)触摸屏坐标
长度比例 =( 400 -200 )/( 360- 240) = 1.6666
x期望 = 长度比例 * (300 - 240) + 200 = 300
这样还是校准出来了理想的触摸屏坐标x期望 = 300.
那Y方向也是同理。
五点法校准
1. 如何计算长度比列:
取上下左右4点坐标对称的4个点,如图,s1',s2'分别表示触摸屏两条横线的实际坐标产生的距离,s1,s2分别表示LCD两条横线的距离。所以两条横线取平均的话
比例kx = (s1+s2)/(s1'+s2'),我们干脆让lcd的上下横线x坐标相等,这样s1 = s2, kx = 2s/(s1'+s2')
y轴方向同理.
2. 原点坐标
我们一般情况下将原点选择LCD的中心位置,对应的LCD坐标Xc,Yc,触摸屏坐标对应xc',Yc'。
那么最终5点校准法的公式就出来了,x期望 = kx * (x' - xc') +xc, 其中x'表示触点实际产生的触摸屏坐标。
y期望= ky * (y' - yc') + yc