四线电阻触摸屏采样滤波算法C语言代码
来源:互联网 发布:卡盟官网源码带后台 编辑:程序博客网 时间:2024/06/06 02:22
四线电阻触摸屏的采样滤波算法,实践证明很好用的!
void TsAdcStart(void) // 自己实现{}bool IsTsAdcOver(void) // 自己实现{ bool iRes; return iRes;}u16 TsAdcGetX(void) // 自己实现{ u16 iXPhy = 0; return iXPhy;}u16 TsAdcGetY(void) // 自己实现{ u16 iYPhy = 0; return iYPhy;}void delayms(u32 t) // 自己实现{}u32 TsGetPhyCoord(void){ u8 i = 0; u8 j = 0; u16 arrXPhy[3] = {0}; u16 arrYPhy[3] = {0}; u16 arrMidXPhy[2] = {0}; u16 arrMidYPhy[2] = {0}; u16 deltaX = 0; u16 deltaY = 0; u32 iXYPhy = 0;for (i=0; i<6; i++){if (i == 0){delayms(5); // 初次采样前的消抖延时} // x、y分别取3个物理值作为一组for (j=0; j<3; j++) {TsAdcStart(); // 自己实现while (!IsTsAdcOver()); // 自己实现arrXPhy[j] = TsAdcGetX(); // 自己实现arrYPhy[j] = TsAdcGetY(); // 自己实现if (j != 2){delayms(1);}} // 将一组物理值的中间大小值分别取出arrXPhy[1] = MIDDLE(arrXPhy[0], arrXPhy[1], arrXPhy[2]);arrYPhy[1] = MIDDLE(arrYPhy[0], arrYPhy[1], arrYPhy[2]);if (i < 2) // 记录最初两组得到的中间值{arrMidXPhy[i] = arrXPhy[1];arrMidYPhy[i] = arrYPhy[1];}else // 记录最初两组之后得到的中间值(若有必要){// 把数组的第1个值移到第0个值处,以便第1个值处能存入新值arrMidXPhy[0] = arrMidXPhy[1];arrMidYPhy[0] = arrMidYPhy[1]; // 将新值存入数组第1个值处arrMidXPhy[1] = arrXPhy[1];arrMidYPhy[1] = arrYPhy[1]; // 本段代码每次都把[1]处值移到[0]处,再把新值存入[1]处} if (i > 0){deltaX = arrMidXPhy[0] - arrMidXPhy[1];deltaY = arrMidYPhy[0] - arrMidYPhy[1]; if (ABS(deltaX)>2 || ABS(deltaY)>2){// 若最初两组采样数据不合要求,则需继续采样,// 直到采样符合要求或达到允许的最大采样次数后结束采样delayms(2);continue;}else{// 采样结果符合要求,结束本次触摸采样break;}}else{// 初次外层循环后要隔段时间再进行第下次循环delayms(5);} }// 求x、y两组物理中间值的平均值arrMidXPhy[0] = (arrMidXPhy[0] + arrMidXPhy[1]) >> 1;arrMidYPhy[0] = (arrMidYPhy[0] + arrMidYPhy[1]) >> 1;iXYPhy = arrMidXPhy[0];iXYPhy <<= 16;iXYPhy |= arrMidYPhy[0];return iXYPhy;}
0 0
- 四线电阻触摸屏采样滤波算法C语言代码
- 四线电阻式触摸屏
- 四线电阻触摸屏校准
- 四线电阻触摸屏 工作原理
- 四线电阻式触摸屏原理
- 四线电阻触摸屏与五线电阻触摸屏的区别和技术比较
- 四线电阻式触摸屏驱动的优化
- 四线电阻式触摸屏驱动的优化
- 四线电阻式触摸屏驱动的优化
- 四线电阻式触摸屏驱动的优化
- 电阻触摸屏的校准算法
- 电阻触摸屏 - 电阻触摸屏
- 4线电阻触摸屏原理
- 四线电阻屏校正算法
- 简单常用滤波算法C语言实现
- 简单常用滤波算法C语言实现
- 简单常用滤波算法C语言实现
- 电阻触摸屏
- Interlocked系列函数线程同步的缺陷
- 黑马程序员---IO流(一)
- 数据结构--利用栈判断括号匹配
- mysql 用指定ID号排序输出结果
- MFC:TabCtrl使用教程
- 四线电阻触摸屏采样滤波算法C语言代码
- 委托实现音乐播放器 | 委托实现音乐播放器的缺点 | 事件实现音乐播放器
- vim入门使用与配置
- HDU 4635 Strongly connected 强连通
- VS 引用WinPcap库的问题
- 【linux驱动笔记】字符设备驱动相关数据结构与算法
- 排查源码编译错误的一些技巧
- hibernate取数据库得到集合问题
- java.exe与javaw.exe的区别