1943|1

91

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

触摸屏驱动中的坐标转换问题 [复制链接]

#define TOUCH_MAX_X 1000 // 950
#define TOUCH_MIN_X 30 // 90
#define TOUCH_MAX_Y 980 // 960 // 910
#define TOUCH_MIN_Y 30 // 70 //50
#define TOUCH_X        800
#define TOUCH_Y        480
VOID Touch_CoordinateConversion(INT *px, INT *py)
{
        INT TmpX, TmpY;
        INT TmpX0, TmpY0;
       
        TmpX0 = *px; TmpY0 = *py;
       
        TmpX = (*px >= TOUCH_MAX_X) ? (TOUCH_MAX_X-1) : *px;
        TmpY = (*py >= TOUCH_MAX_Y) ? (TOUCH_MAX_Y-1) : *py;
       
        TmpX -= TOUCH_MIN_X;
    TmpY -= TOUCH_MIN_Y;

//#ifdef YC_2440_SUPPORT
#ifndef YC_2440_SUPPORT
        TmpX = (TmpX >= 0) ? TmpX : 0;
    TmpY = (TmpY >= 0) ? TmpY : 0;
#else
    TmpX = (TmpX) ? TmpX : 0;
    TmpY = (TmpY) ? TmpY : 0;
#endif
   
        *px = ((TmpX * TOUCH_X) / (TOUCH_MAX_X-TOUCH_MIN_X))*4;
        *py = ((TmpY * TOUCH_Y) / (TOUCH_MAX_Y-TOUCH_MIN_Y))*4;
请教朋友们,这里面的TOUCH_MAX_X,等参数是怎么取得的啦,这个驱动与下面这个的转换区别在哪里呀!!!
TSP_TransXY(INT *px, INT *py)
{
        *px = (*px - TSP_MINX) * TSP_LCDX / (TSP_MAXX - TSP_MINX);
        *py = (*py - TSP_MINY) * TSP_LCDY / (TSP_MAXY - TSP_MINY);

        if (*px  <        0) *px = 0;
        if (*px >= TSP_LCDX) *px = TSP_LCDX - 1;

        if (*py  <        0) *py = 0;
        if (*py >= TSP_LCDY) *py = TSP_LCDY - 1;
}
其中#define TSP_MINX                                                60
#define TSP_MINY                                                60

#define TSP_MAXX                                                3000
#define TSP_MAXY                                                3000


#define TSP_LCDX                                                (LCD_XSIZE_TFT * 4)
#define TSP_LCDY                                                (LCD_YSIZE_TFT * 4)

最新回复

写一个不带系统的触摸屏程序,有按下是在超级终端输出点击的值,然后得到最大值和最小的值。。。 一般误差不大的情况影响不大,定义他们的目的是触摸屏一般比屏幕大一点,那些比屏幕大的部分.我觉得最重要的是要将没有用的点滤掉掉。 我之前也遇到过这样的问题,后来实在搞不定就转去搞其他方面了。 楼主解决的话麻烦你把驱动发一份给我啊。  详情 回复 发表于 2009-4-22 23:19
点赞 关注

回复
举报

69

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
写一个不带系统的触摸屏程序,有按下是在超级终端输出点击的值,然后得到最大值和最小的值。。。
一般误差不大的情况影响不大,定义他们的目的是触摸屏一般比屏幕大一点,那些比屏幕大的部分.我觉得最重要的是要将没有用的点滤掉掉。
我之前也遇到过这样的问题,后来实在搞不定就转去搞其他方面了。
楼主解决的话麻烦你把驱动发一份给我啊。
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表