硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3837|回复: 13
收起左侧

[有问必答] 触摸屏4点校准问题

[复制链接]

1

主题

6

回帖

1

积分

新手上路

积分
1
发表于 2017-3-13 14:22:16 | 显示全部楼层 |阅读模式
x1 = CalTwoPoint(g_tTP.usAdcY1, g_tTP.usAdcX1, g_tTP.usAdcY2,  g_tTP.usAdcX3, _usAdcY);
x2 = CalTwoPoint(g_tTP.usAdcY1, g_tTP.usAdcX4, g_tTP.usAdcY2,  g_tTP.usAdcX2, _usAdcY);
原理?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2017-3-13 14:26:29 | 显示全部楼层
两点确定一条线,然后任意给个出一个坐标点上的Y值,求解出X值。
回复

使用道具 举报

1

主题

6

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2017-3-13 14:36:16 | 显示全部楼层
(4)
usAdcX=2614,usAdcY=1043
usAdcX=2661,usAdcY=1016
usAdcX=2673,usAdcY=1010
usAdcX=2675,usAdcY=1041
usAdcX=2665,usAdcY=1033
usAdcX=2670,usAdcY=1032
usAdcX=2677,usAdcY=1036
usAdcX=2667,usAdcY=1033
usAdcX=2672,usAdcY=1024
usAdcX=2682,usAdcY=1042
x,y(844,-193)
出现不正常的坐标,怎么处理?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2017-3-13 14:39:01 | 显示全部楼层

回 abccc 的帖子

abccc:(4)
usAdcX=2614,usAdcY=1043
usAdcX=2661,usAdcY=1016
usAdcX=2673,usAdcY=1010
usAdcX=2675,usAdcY=1041
....... (2017-03-13 14:36) 
使用我们的那个校准代码,要先做触摸校准,校准后才可以使用。
回复

使用道具 举报

1

主题

6

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2017-3-13 14:39:23 | 显示全部楼层
1 adc(2948,2653), xy(40,40)
2 adc(1877,1550), xy(760,440)
3 adc(1383,2773), xy(40,440)
4 adc(2617,1084), xy(760,40)
校准参数

测试点
usAdcX=2614,usAdcY=1043
usAdcX=2661,usAdcY=1016
usAdcX=2673,usAdcY=1010
usAdcX=2675,usAdcY=1041
usAdcX=2665,usAdcY=1033
usAdcX=2670,usAdcY=1032
usAdcX=2677,usAdcY=1036
usAdcX=2667,usAdcY=1033
usAdcX=2672,usAdcY=1024
usAdcX=2682,usAdcY=1042
x,y(844,-193)
出现不正常点
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2017-3-13 14:51:59 | 显示全部楼层
函数TOUCH_TransX和TOUCH_TransY,末尾的地方,都是注释了其中一个,都试试。
1.png

------------
2.png
回复

使用道具 举报

1

主题

6

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2017-3-13 15:09:04 | 显示全部楼层
g_tTP.usLcdX1 = TP_X1;
    g_tTP.usLcdY1 = TP_Y1;
    g_tTP.usLcdX2 = TP_X2;
    g_tTP.usLcdY2 = TP_Y2;
    g_tTP.usLcdX3 = TP_X3;
    g_tTP.usLcdY3 = TP_Y3;
    g_tTP.usLcdX4 = TP_X4;
    g_tTP.usLcdY4 = TP_Y4;

这个是同一个值。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2017-3-13 15:11:45 | 显示全部楼层

回 abccc 的帖子

abccc:    g_tTP.usLcdX1 = TP_X1;
    g_tTP.usLcdY1 = TP_Y1;
    g_tTP.usLcdX2 = TP_X2;
    g_tTP.usLcdY2 = TP_Y2;
    g_tTP.usLcdX3 = TP_X3;
....... (2017-03-13 15:09)
改一下,实际操作的,有个函数有bug。测试下看看。我现在V5板子的emWin中4点触摸校准就是采用的上面我截图中所示的函数。
回复

使用道具 举报

1

主题

6

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2017-3-13 15:17:57 | 显示全部楼层
怎么改?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2017-3-13 15:19:59 | 显示全部楼层
555.png
回复

使用道具 举报

1

主题

6

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2017-3-13 15:26:10 | 显示全部楼层
TP_X1 == g_tTP.usLcdX1; TP_X2 == g_tTP.usLcdX2 是相同的,
实际是同一个函数,参数值也相同,没影响。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2017-3-13 15:33:09 | 显示全部楼层
实际测试了没有,测试下,如果还不行的话,就不清楚了。
回复

使用道具 举报

1

主题

6

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2017-3-13 15:38:54 | 显示全部楼层
x1 = CalTwoPoint(g_tTP.usAdcY1, g_tTP.usAdcX1, g_tTP.usAdcY2,  g_tTP.usAdcX3, _usAdcY);
x2 = CalTwoPoint(g_tTP.usAdcY1, g_tTP.usAdcX4, g_tTP.usAdcY2,  g_tTP.usAdcX2, _usAdcY);
为什么这么用?
g_tTP.usAdcX1 与 g_tTP.usAdcX4
g_tTP.usAdcX2 与 g_tTP.usAdcX3
相差比较大的
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2017-3-13 15:41:04 | 显示全部楼层

回 abccc 的帖子

abccc:x1 = CalTwoPoint(g_tTP.usAdcY1, g_tTP.usAdcX1, g_tTP.usAdcY2,  g_tTP.usAdcX3, _usAdcY);
x2 = CalTwoPoint(g_tTP.usAdcY1, g_tTP.usAdcX4, g_tTP.usAdcY2,  g_tTP.usAdcX2, _usAdcY);
为什么这么用?
g_tTP.usAdcX1 与 g_tTP.usAdcX4
g_tTP.usAdcX2 与 g .. (2017-03-13 15:38)
提升容错,相比两个点。

这个问题就帮你这么多吧,如果还不行就网上搜下tslib库的五点触摸校准。这个库也不错[s:142]
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-16 10:19 , Processed in 0.051508 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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