计算距离是哪段代码校准点参数:01与2302与1312与03这三组点的距离const u8 TP_ADJDIS_TBL34=012302131203;校准距离计算表触摸屏校准代码得到四个校准参数void TP_Adjustvoid u16 pos_temp42;坐标缓存值 u8 cnt=0; u16 d1d2; float fac; u16 outtime=0; u32 tem1tem2; LCD
计算距离的代码在TP_Adjust函数的for循环中,具体实现如下:
for(cnt=0;cnt<3;cnt++)//计算三组点的距离是否在允许范围内? { tem1=abs(pos_temp[TP_ADJDIS_TBL[cnt][0]][0]-pos_temp[TP_ADJDIS_TBL[cnt][1]][0]);//x1-x2/x1-x3/x2-x3 tem2=abs(pos_temp[TP_ADJDIS_TBL[cnt][0]][1]-pos_temp[TP_ADJDIS_TBL[cnt][1]][1]);//y1-y2/y1-y3/y2-y3 tem1*=tem1; tem2*=tem2; d1=sqrt(tem1+tem2);//得到两点之间的距离 tem1=abs(pos_temp[TP_ADJDIS_TBL[cnt][2]][0]-pos_temp[TP_ADJDIS_TBL[cnt][3]][0]);//x3-x4/x2-x4/x1-x4 tem2=abs(pos_temp[TP_ADJDIS_TBL[cnt][2]][1]-pos_temp[TP_ADJDIS_TBL[cnt][3]][1]);//y3-y4/y2-y4/y1-y4 tem1*=tem1; tem2*=tem2; d2=sqrt(tem1+tem2);//得到两点之间的距离 fac=(float)d1/d2; if(fac<0.95||fac>1.05||d1==0||d2==0)//不合格 { //... } }
其中,pos_temp数组存储四个校准点的坐标,TP_ADJDIS_TBL是一个3x4的数组,存储三组点的下标,用于计算距离。具体计算方法是先计算每组点之间的横纵坐标差值,再求平方和,最后开方得到距离。最后通过距离比值来判断校准是否合格。如果不合格,则重新校准。
原文地址: https://www.cveoy.top/t/topic/bOFN 著作权归作者所有。请勿转载和采集!