触摸屏校准代码解析:获取校准参数并验证距离
这段代码是触摸屏校准代码,主要功能是获取触摸屏的四个校准参数,即'xfac'、'xoff'、'yfac'、'yoff'。其中,校准点参数是事先给定的,存储在'TP_ADJDIS_TBL'数组中;校准距离计算表用于计算三组点的距离是否在允许范围内。
整个校准过程中,会在屏幕上画出四个点,用户需要按照指示,在这四个点上分别点击屏幕。点击后,会将坐标值存储在'pos_temp'数组中,并判断三组点的距离是否在允许范围内,如果不合格,则重新校准;如果合格,则计算出四个校准参数,并将其保存。
校准完成后,屏幕上会显示'Touch Screen Adjust OK!',并将校准参数保存到EEPROM中。
代码详解:
-
校准点参数和距离计算表:
- 'TP_ADJDIS_TBL'数组存储了三个校准点参数,每个参数对应两点的索引,用于计算三组点的距离。
-
获取坐标值:
- 代码通过'tp_dev.scan(1)'函数扫描物理坐标,当用户点击屏幕时,获取坐标值并存储在'pos_temp'数组中。
-
距离验证:
- 代码使用'TP_ADJDIS_TBL'数组中的索引,从'pos_temp'数组中获取三组点的坐标值,并计算两点之间的距离。
- 通过比较计算出的距离与预期距离的比例,判断是否在允许范围内。
- 如果距离不在允许范围内,则重新校准,否则继续执行。
-
计算校准参数:
- 如果三组点的距离验证通过,则代码根据四个点坐标计算'xfac'、'xoff'、'yfac'、'yoff'参数。
-
参数保存:
- 代码将计算出的四个参数保存到'tp_dev'结构体中,并显示'Touch Screen Adjust OK!'提示信息。
-
错误处理:
- 代码处理了触屏方向与预设方向相反的情况,会提示用户重新校准,并修改触屏类型。
总结:
这段代码通过循环获取四个点的坐标值,并根据预设的校准点参数和距离计算表进行验证,最终计算出触摸屏的四个校准参数。整个过程清晰简洁,易于理解,并包含了错误处理机制,确保校准过程顺利完成。
原文地址: https://www.cveoy.top/t/topic/ne5j 著作权归作者所有。请勿转载和采集!