OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4634|回复: 5

电阻触摸屏校准问题

[复制链接]

14

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
160
金钱
160
注册时间
2017-4-27
在线时间
23 小时
发表于 2017-6-17 11:09:33 | 显示全部楼层 |阅读模式
3金钱
我在做原子哥的触摸屏实验时,用的是4.3寸电阻屏是开发板配套的,但发现总是校不准,而且左侧和右侧均存在一部分无法触摸的区域,就是你按下那块区域,点会画在同水平线靠中间的部分上,这样就无法再触摸屏左右侧完成触摸功能,然后我就写了一个函数查看触摸屏的物理地址,发现物理地址大概如下:是四个角的物理地址:
(x1,y2)=(3170, 3910)    (x2,y2) =(810,3920)
(x3,y3)  =(3851, 240)    (x4,y4) =(750,230)
然后四个角的像素地址:

(x1,y2)=(74, 5)           (x2,y2) =(263,7)
(x3,y3)  =(13, 467)        (x4,y4) =(272, 470)

发现触摸屏的物理地址存在很大问题,x1与x3应该是在X轴 的同一垂直线上,读出的值应该是相差不大,单这里有进700的差值,x2与x4却只有60的差值,y周上问题不大,这样导致转换成像素坐标时无法正常与物理地址匹配起来,就是导致了上述的触摸屏左右侧的点触摸后画的点却显示在靠中间的位置上,想请教各位大神,有没有遇到过类似的问题,改如何解决呢?是我的触摸屏硬件上出口了问题还是在用触摸屏控制IC做AD转换出了问题呢?
困扰好几天了,

最佳答案

查看完整内容[请看2#楼]

找到问题了,是因为像素坐标系和触摸屏的物理坐标系的X,Y周并不垂直,物理坐标系相对于像素坐标系有旋转,导致同一水平线上有差异。另外AD控制芯片的时序也会有一些影响,但影响较小。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

14

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
160
金钱
160
注册时间
2017-4-27
在线时间
23 小时
 楼主| 发表于 2017-6-17 11:09:34 | 显示全部楼层
正点原子 发表于 2017-6-18 19:19
估计你的触摸屏有问题了。。。。硬件有问题

找到问题了,是因为像素坐标系和触摸屏的物理坐标系的X,Y周并不垂直,物理坐标系相对于像素坐标系有旋转,导致同一水平线上有差异。另外AD控制芯片的时序也会有一些影响,但影响较小。
回复

使用道具 举报

558

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
164846
金钱
164846
注册时间
2010-12-1
在线时间
2098 小时
发表于 2017-6-18 19:19:57 | 显示全部楼层
估计你的触摸屏有问题了。。。。硬件有问题
回复

使用道具 举报

4

主题

57

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2016-1-25
在线时间
75 小时
发表于 2017-7-3 20:47:50 | 显示全部楼层
我现在也出现这个问题了,三个点可以,第四个点的X坐标明显不对,y坐标没问题,硬件上有问题,这个屏就费了么。

LZ怎么处理这个问题了
回复

使用道具 举报

14

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
160
金钱
160
注册时间
2017-4-27
在线时间
23 小时
 楼主| 发表于 2017-7-3 21:09:40 | 显示全部楼层
ljmf5 发表于 2017-7-3 20:47
我现在也出现这个问题了,三个点可以,第四个点的X坐标明显不对,y坐标没问题,硬件上有问题,这个屏就费了 ...

你的点是原始物理坐标不对还是滤波后的坐标?如果事物理坐标,就看看AD的时序对了吗?我重写了AD的时序后物理坐标就好了很多,
回复

使用道具 举报

4

主题

57

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2016-1-25
在线时间
75 小时
发表于 2017-7-4 19:21:36 | 显示全部楼层
1018988577 发表于 2017-7-3 21:09
你的点是原始物理坐标不对还是滤波后的坐标?如果事物理坐标,就看看AD的时序对了吗?我重写了AD的时序后 ...

就用原子哥的例程运行的,校准不对会用函数TP_Adj_Info_Show显示4个点的坐标,应该是物理坐标,

你重写AD的时序,是这个函数吗,怎么重写的
[mw_shl_code=applescript,true]

u16 TP_Read_AD(u8 CMD)          
{          
        u8 count=0;           
        u16 Num=0;
        TCLK=0;                //先拉低时钟          
        TDIN=0;         //拉低数据线
        TCS=0;                 //选中触摸屏IC
        TP_Write_Byte(CMD);//发送命令字
        delay_us(6);//ADS7846的转换时间最长为6us
        TCLK=0;                          
        delay_us(1);              
        TCLK=1;                //给1个时钟,清除BUSY                        
        TCLK=0;                          
        for(count=0;count<16;count++)//读出16位数据,只有高12位有效
        {                                   
                Num<<=1;          
                TCLK=0;        //下降沿有效                        
                TCLK=1;
                if(DOUT)Num++;                  
        }         
        Num>>=4;           //只有高12位有效.
        TCS=1;                //释放片选         
        return(Num);   
}
[/mw_shl_code]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-4-18 21:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表