OpenEdv-开源电子网

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

发一个emwin上使用tslib的代码,解决飞点,按键不断按下问题

[复制链接]

18

主题

112

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
363
金钱
363
注册时间
2015-10-29
在线时间
49 小时
发表于 2016-4-28 16:36:29 | 显示全部楼层 |阅读模式
具体代码可参考百为兄的程序,下面的链接是他的完整的工程,里面已经很详细。
来源http://bbs.21ic.com/icview-762448-1-1.html
下载地址: 百为STM32_stdlib3.5_ucosii2.92_stemwin5.20.rar 密码: gikk
直接使用上面的代码 触摸扫描程序会有问题,1是飞点,2是按键按住时会不断按下,我做了一点修改,经测试效果还是很好的。

static u8 _dbCnt=0;
static int _xLast = -1;
static int _yLast = -1;
void my_GUI_TOUCH_Exec(void)
{
        int x_cur,y_cur;
        int x,y;
        int xOut, yOut;
        if(!PEN)
        {
                _dbCnt++;
                if(_dbCnt<5)
                {
                        return;
                }
                _dbCnt = 0;       
                if(getxy (&x_cur, &y_cur))
                {
                        Phys2Log(x_cur, y_cur, &x, &y);
                }
                else
                {
                        x = _xLast;
                        y = _yLast;
                }
                if ((x != -1) && (y != -1) && (_xLast != -1) && (_yLast != -1)) {
                        xOut = _xLast;   
                        yOut = _yLast;   
                } else {
                        xOut = -1;
                        yOut = -1;   
                }
                GUI_TOUCH_StoreUnstable(xOut, yOut);       
        }
        else
        {
                _dbCnt = 0;
                x = -1;
                y = -1;
                GUI_TOUCH_StoreUnstable(-1, -1);
        }
        _xLast = x;
  _yLast = y;
}

上面x ,y =-1的意思是,当x,y的坐标给定一个负值时,GUI会假定触摸屏未被按下。


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

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 15:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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