查看: 8529|回复: 9

请教亮哥,ra8875的触摸功能

[复制链接]

该用户从未签到

发表于 2013-2-27 11:18:13 | 显示全部楼层 |阅读模式
分享到:
今天试了一下ra8875的触摸功能,没有做校准直接把采回来的点直接打在lcd上发现偏差很大(大概2到3cm),这正常吗?
回复

使用道具 举报

该用户从未签到

发表于 2013-2-27 11:19:16 | 显示全部楼层
顶起~希望亮哥能看到!!
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2019-7-16 16:03
  • 签到天数: 751 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2013-2-27 11:41:11 | 显示全部楼层
    帮你顶起来      
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-1-8 15:51
  • 签到天数: 22 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2013-2-27 18:54:04 | 显示全部楼层
    不正常,请检查RA8875的AD的参考电压!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2013-2-27 21:48:17 | 显示全部楼层
    亮点 发表于 2013-2-27 18:54
    不正常,请检查RA8875的AD的参考电压!

    参考电压我是用ra8875内部参考的。内部的参考电压有问题吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-1-8 15:51
  • 签到天数: 22 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2013-2-28 17:45:23 | 显示全部楼层
    xqy281 发表于 2013-2-27 21:48
    参考电压我是用ra8875内部参考的。内部的参考电压有问题吗?

    我觉得首先要搞清楚偏差是向一个方向,还是随机的。是不是离左上角越远偏差越大。内部的参考电压一般不会有问题,建议你点击后,将获得的AD值输出到屏幕上,或输出到串口观察。
    例如,4个角的X,Y值和ADX,ADY转换结果,好进行分析
    如果没有滤波(多次求平均),试着增加滤波,如
    亮点的代码:
    void tft_gettouchpoint(INT16U *touchx,INT16U *touchy)
    {
                INT16U databufx[8],databufy[8],count,temp1,temp2,i,j;

                    //LcdClear(WHITE);
                    delay_ms(500);
                    while (1)
                {          
                              clear_TP_interrupt(); //清除RA8875触摸信息
                          delay_ms(2);           
                    if(Touch_Status())                //如果有触摸
                    {
                                    clear_TP_interrupt();
                                    led_turn1;                               
                                    delay_ms(2);
                                    count=0;
                        while(count<8)//循环读数8次
                        {
                                            clear_TP_interrupt();                //清除RA8875中断标志
                            databufx[count] = Get_X_ADC_Value_10bit();        //读取X轴AD值
                            databufy[count]=Get_Y_ADC_Value_10bit();        //读取Y轴AD值
                            count++;
                            delay_ms(2);
                                    }
                
                                    for(j=0;j<count-1;j++)
                                for(i=j;i<count-1;i++)
                                {
                                    if(databufx>databufx[i+1])//升序排列
                                    {
                                        temp1=databufx[i+1];
                                        databufx[i+1]=databufx;
                                        databufx=temp1;
           
                                        temp2=databufy[i+1];
                                        databufy[i+1]=databufy;
                                        databufy=temp2;

                                    }
                                }

                    *touchx=(databufx[3]+databufx[4]+databufx[5])/3;
                    *touchy=(databufy[3]+databufy[4]+databufy[5])/3;
                                    if(ISDEBUG) printf("%d,%d  ",touchx,touchy);
                                    return;
                               }//if
                       delay_ms(50);
                       }
    }
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2013-3-1 16:45:16 | 显示全部楼层
    亮点 发表于 2013-2-28 17:45
    我觉得首先要搞清楚偏差是向一个方向,还是随机的。是不是离左上角越远偏差越大。内部的参考电压一般不会 ...

    用了亮哥的升序滤波算法后,基本上就差不多了。但是越往右面越不准(已经校准过的)这是触摸屏的问题吗?
    亮哥你这个算法加的延时那么大,如果要手写的话就很难识别了。请问还有别的方法?
    我试过把延时减少结果同一个点读了两次(抬手的时候),电阻屏太灵敏了!郁闷的我..
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2013-3-1 17:36:56 | 显示全部楼层
    亮点 发表于 2013-2-28 17:45
    我觉得首先要搞清楚偏差是向一个方向,还是随机的。是不是离左上角越远偏差越大。内部的参考电压一般不会 ...

    补充: x轴正偏 y轴不偏。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-1-8 15:51
  • 签到天数: 22 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2013-3-2 15:22:36 | 显示全部楼层
    xqy281 发表于 2013-3-1 17:36
    补充: x轴正偏 y轴不偏。

    我觉得延时要自己来调整, y轴不偏说明硬件没问题,x轴正偏且越往右越大那可能还是校准不准,比例系数不对,是不是最右边的点比中间的偏量大一倍呢,你已经接近成功了!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2013-3-3 14:40:16 | 显示全部楼层
    亮点 发表于 2013-3-2 15:22
    我觉得延时要自己来调整, y轴不偏说明硬件没问题,x轴正偏且越往右越大那可能还是校准不准,比例系数不 ...

    换了新的电阻屏~一个下午就调好了!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-12-25 10:08 , Processed in 0.203820 second(s), 32 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.