硬汉嵌入式论坛

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

[emWin] 关于armflyV5中的例程触摸部分的问题

[复制链接]

14

主题

11

回帖

53

积分

初级会员

积分
53
发表于 2020-7-9 09:23:55 | 显示全部楼层 |阅读模式
我看到例程中,触摸的部分,并没有用GUI_TOUCH_Calibrate()触摸校准函数,用的是TOUCH_TransX()和TOUCH_TransY()函数把触摸值转换为像素值
这两个函数中主要调用的是CalTwoPoint()函数              CalTwoPoint(g_tTP.usAdcY1, g_tTP.usAdcX1, g_tTP.usAdcY2,  g_tTP.usAdcX3, _usAdcY); //X Y坐标不交换
其中参数g_tTP.usAdcY1, g_tTP.usAdcX1, g_tTP.usAdcY2,  g_tTP.usAdcX3,应该就是校准的时候,四个点的触摸坐标,
QQ浏览器截图20200709091450.png
理论上来说,g_tTP.usAdcY1应该等于 g_tTP.usAdcY2,g_tTP.usAdcX1应该等于 g_tTP.usAdcX3
把参数代入CalTwoPoint()函数的计算公式的话,(y2 - y1)和 (x2 - x1)不都是0吗?实在是想不明白这里的计算
  1. static int32_t CalTwoPoint(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t x)
  2. {
  3.         return y1 + ((int32_t)(y2 - y1) * (x - x1)) / (x2 - x1);
  4. }
复制代码
另外还想问一点,CalTwoPoint()这个函数的作用是什么呢?计算出来的是触摸的值对应的屏幕像素值吗?
TOUCH_TransX()和TOUCH_TransY()这两个函数是怎么起到和GUI_TOUCH_Calibrate()一样的作用呢?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2020-7-9 10:12:52 | 显示全部楼层

回帖奖励 +10 个金币

教程这个章节进行了讲解说明
所有板子的电阻屏都是这个方案:

https://forum.anfulai.cn/forum.php?mod=viewthread&tid=86980

QQ截图20200709101423.jpg
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-17 23:16 , Processed in 0.037345 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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