四线电阻触摸屏采样滤波算法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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 胎心监护不过关怎么办 羚羊角的功效与作用发烧怎么办 小孩上课注意力不集中怎么办 2岁宝宝不会说话怎么办 小孩脖子上长淋巴结怎么办 小孩子上课注意力不集中该怎么办 脸过敏干燥起皮怎么办 脸上皮肤干燥起皮怎么办 身上皮肤干燥起皮怎么办 皮肤暗黄有色斑怎么办 我皮肤干燥暗黄怎么办 脸上有皮肤暗黄怎么办 皮肤暗黄毛孔大怎么办 脸上很干燥起皮怎么办 脸上的皮肤起皮怎么办 身体的皮肤好干怎么办 滴油雾化器炸油怎么办 已经发炎的痘痘怎么办 被养生馆骗了怎么办 做完微针结痂了怎么办 秋季脸干燥起皮怎么办 身上的皮肤太干怎么办 板材眼镜腿松了怎么办 超声刀后喝酒了怎么办 开眼角疤痕增生了怎么办 开了眼角有增生怎么办 全切双眼皮留疤怎么办 开内眼角留疤了怎么办 开眼角长了颗粒怎么办 开刀后疤痕庝痛怎么办 眼角开得太尖了怎么办 眼角开得太大了怎么办 开眼角后增生了怎么办 下颌骨宽怎么办不整容 脸两边骨头太宽怎么办 接了睫毛眼睛疼怎么办 下颌骨错位脸歪怎么办 假体隆鼻感冒了怎么办 打了玻尿酸怀孕怎么办 鼻子上有出血点怎么办 内眼角开小了怎么办