OpenEdv-开源电子网

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

触摸屏校准算法需要问原子哥??

[复制链接]

19

主题

88

帖子

0

精华

初级会员

Rank: 2

积分
184
金钱
184
注册时间
2013-7-15
在线时间
0 小时
发表于 2013-10-24 20:50:27 | 显示全部楼层 |阅读模式
        原子哥,在触摸屏算法中,我找到一个五点触摸校准算法,是这样子讲到,利用物理坐标和逻辑坐标,两个触摸点的逻辑坐标的差值除以
    这两个物理坐标的差值,这样就可以得到X,Y两个系数,但是有点不懂,逻辑坐标是可以通过读取AD转换值得到,但是物理坐标怎么确定啊??
   物理坐标读不能读取到,也就是说那两个物理坐标的差值怎么求啊???

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

19

主题

88

帖子

0

精华

初级会员

Rank: 2

积分
184
金钱
184
注册时间
2013-7-15
在线时间
0 小时
 楼主| 发表于 2013-10-24 21:12:18 | 显示全部楼层
  在看到你的例程中,有1.2.3.4个点,然后读取AD值,分别求差值,后确定差值是否在指定范围内。我想你读取的
是不是都是AD值,就是逻辑坐标,然后那个物理坐标是自己已经设定了,你的这个fac<0.95||fac>1.05;你是怎么确定这个范围就是在0.95--1.05的
对这个函数不是很理解

                                        tem1=abs(pos_temp[2][0]-pos_temp[3][0]);//x3-x4
tem2=abs(pos_temp[2][1]-pos_temp[3][1]);//y3-y4
tem1*=tem1;
tem2*=tem2;
d2=sqrt(tem1+tem2);//得到3,4的距离
fac=(float)d1/d2;
if(fac<0.95||fac>1.05||d1==0||d2==0)//不合格

是不是你在屏幕上设定个我们点击的点就是确定的,他们之间3和4的关系差值就是1:1的??不可以我自己随便点击几个点,然后自动触摸屏校正

回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2013-10-25 12:50:01 | 显示全部楼层
建议楼主还是了解一下电阻触摸屏的校准原理吧,在数学上的方程计算
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-10-25 16:12:16 | 显示全部楼层
回复【2楼】和平清风:
---------------------------------
我们不是有对这个方法进行讲解么?
stm32不完全手册/stm32开发指南
都讲了吧?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

19

主题

88

帖子

0

精华

初级会员

Rank: 2

积分
184
金钱
184
注册时间
2013-7-15
在线时间
0 小时
 楼主| 发表于 2013-10-25 22:46:52 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
我想问一下,我直接读触摸屏的ad值,出来之后发现点击同一个点的时候,每次读取5次,去除了最高和最低的,另外三次取平均值
发现点击的这两次误差好大啊,都好几百了。这是什么原因啊????
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-10-25 22:58:38 | 显示全部楼层
看你屏的素质了
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

19

主题

88

帖子

0

精华

初级会员

Rank: 2

积分
184
金钱
184
注册时间
2013-7-15
在线时间
0 小时
 楼主| 发表于 2013-10-25 23:14:38 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
   我也不知道啊,当我单单是读取一个方向轴上的电压时,比如Y轴,从上到下,慢慢的用笔滑下来,AD转换的值是慢慢增大的,同理,在X轴
上这样子做,也会有相同的现象,感觉没什么问题,偏偏就是在单点读取的时候,每次读取5次,去除了最高和最低的,另外三次取平均值 
发现点击的这两次出来的值误差好大啊
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-10-25 23:17:16 | 显示全部楼层
回复【7楼】和平清风:
---------------------------------
用我们的代码试试。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

20

主题

143

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2015-8-28
在线时间
108 小时
发表于 2016-12-14 10:52:13 | 显示全部楼层
物理坐标不是你程序指定的吗?
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-26 08:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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