|
我看到例程中,触摸的部分,并没有用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,应该就是校准的时候,四个点的触摸坐标,
理论上来说,g_tTP.usAdcY1应该等于 g_tTP.usAdcY2,g_tTP.usAdcX1应该等于 g_tTP.usAdcX3
把参数代入CalTwoPoint()函数的计算公式的话,(y2 - y1)和 (x2 - x1)不都是0吗?实在是想不明白这里的计算
- static int32_t CalTwoPoint(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t x)
- {
- return y1 + ((int32_t)(y2 - y1) * (x - x1)) / (x2 - x1);
- }
复制代码 另外还想问一点,CalTwoPoint()这个函数的作用是什么呢?计算出来的是触摸的值对应的屏幕像素值吗?
TOUCH_TransX()和TOUCH_TransY()这两个函数是怎么起到和GUI_TOUCH_Calibrate()一样的作用呢?
|
|