上一节得到了触摸屏和LCD坐标关于x轴和y轴的转换公式,其中主要是获取两个长度比例Kx和Ky,以及中心点E的坐标,这节编程实现按下触摸屏,在对应的LCD上画点画线的功能。
- Kx = (s1 + s2) / (s1’ + s2’)
- Ky = (d1 + d2) / (d1’ + d2’)
写程序:
- 在A点显示"+"(fb_disp_cross(int x, int y, int color));
- 用户点击"+";
- 记录触摸屏坐标(ts_read_raw());
- 在BCDE上循环1-3步(显示,点击,读取);
- 根据获得的数据确定公式(ts_calibrate());
- 以后得到TS触点时,转换出LCD坐标(ts_read());
后记:
- 注意无符号数的相减溢出问题;
- 触摸屏AD信号采样需要多次采样求平均值来防止误差,校准时还要对多次采样的平均值再平均,这样才可以避免某次误差过大带来的校准误差。