硬汉嵌入式论坛

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

[emWin] 触摸问题

[复制链接]

1

主题

11

回帖

1

积分

新手上路

积分
1
发表于 2014-11-12 12:47:18 | 显示全部楼层 |阅读模式
我的触摸程序是根据  安富莱4.3寸,5寸,7寸屏触摸校准程序和安富莱的emWin 60期的教程来移植的,但移植完后触摸功能时灵时不灵。在TouchScan()程序中加上DEBUG("\r\n emWin test!\r\n");这条语句时,运行官网例程TOUCH_Calibrate触摸有反应,可以用来校正,但过几秒钟就卡死了,在怎么触摸都没反应。若不加那条语句,触摸没反应。其实DEBUG()就是printf()的一个宏,用串口来打印信息的。校正好后,根据安富莱emWin教程,运行官方DIALOG_SliderColor例程,除显示Cancel有问题,其它的显示都没有问题。触摸屏是没反应,即触摸按钮和滑动条都是没反应的。  不知道我在移植过程中缺少哪些步骤,请各位教教,谢谢。

void TouchScan(void)
{
    uint8_t s_invalid_count = 0;
   
    //if(Touch_Status())
    if(TOUCH_PressValid == 0)   
    {            
        //DEBUG("\r\n emWin test!\r\n");
        while(!GetTouchADCVal(&g_TouchADC.touchADCX,&g_TouchADC.touchADCY) && s_invalid_count < 20)
        {
            s_invalid_count++;
        }
        if(s_invalid_count >= 20)
        {
            g_TouchADC.touchADCX = -1;
            g_TouchADC.touchADCY = -1;
        }
    }
    else
    {
        g_TouchADC.touchADCX = -1;
        g_TouchADC.touchADCY = -1;   
    }            
}
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107488
QQ
发表于 2014-11-12 13:10:10 | 显示全部楼层
楼主,你用的什么屏和触摸IC。
回复

使用道具 举报

1

主题

11

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2014-11-12 15:16:44 | 显示全部楼层

回 eric2013 的帖子

eric2013:楼主,你用的什么屏和触摸IC。 (2014-11-12 13:10) 
版主,我用的是RAIO 8870 和 8875 差不多的,自带触摸功能的哦
回复

使用道具 举报

1

主题

11

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2014-11-12 15:17:36 | 显示全部楼层

回 eric2013 的帖子

eric2013:楼主,你用的什么屏和触摸IC。 (2014-11-12 13:10) 
模拟屏,驱动屏的控制器是RA8870
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107488
QQ
发表于 2014-11-13 10:28:36 | 显示全部楼层

回 ywzhang2014 的帖子

ywzhang2014:模拟屏,驱动屏的控制器是RA8870 (2014-11-12 15:17) 
RA8870也是在的触摸IC的吗
回复

使用道具 举报

1

主题

11

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2014-11-13 12:57:50 | 显示全部楼层

回 eric2013 的帖子

eric2013:RA8870也是在的触摸IC的吗 (2014-11-13 10:28) 
什么意思呀。    RA8870文档没说是什么触摸IC。 触摸功能是通过寄存器来开启和使用的
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107488
QQ
发表于 2014-11-13 17:29:19 | 显示全部楼层

回 ywzhang2014 的帖子

ywzhang2014:什么意思呀。    RA8870文档没说是什么触摸IC。 触摸功能是通过寄存器来开启和使用的 (2014-11-13 12:57) 
不好意思,文字没有表达清楚,有时候这个触摸的周期等参数需要适当的重新配置,要不的确会出现这种情况。
回复

使用道具 举报

1

主题

11

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2014-11-13 20:57:59 | 显示全部楼层

回 eric2013 的帖子

eric2013:不好意思,文字没有表达清楚,有时候这个触摸的周期等参数需要适当的重新配置,要不的确会出现这种情况。 (2014-11-13 17:29) 
哦,触摸的周期等参数配置有什么技巧吗? 我修改了一下,还是不行。
我想问一下       如果开通触摸屏中断功能,在调用TouchScan()函数后,为什么您的程序里面不用清除触摸屏的中断标志位(清除其中断标志位即是对寄存器F1H的第2位写1),就可以连续触摸呢。而官方文档不是说一次触摸中断后,要清除触摸屏的中断标志位才可以感应下一次触摸吗?
还想问一下,寄存器71H第2位中的弹跳电路是什么电路来的,干什么用的呢?
谢谢您
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107488
QQ
发表于 2014-11-13 22:32:44 | 显示全部楼层

回 ywzhang2014 的帖子

ywzhang2014:哦,触摸的周期等参数配置有什么技巧吗? 我修改了一下,还是不行。
我想问一下       如果开通触摸屏中断功能,在调用TouchScan()函数后,为什么您的程序里面不用清除触摸屏的中断标志位(清除其中断标志位即是对寄存器F1H的第2位写1),就可以连 .. (2014-11-13 20:57) 
我没有开启中断,我这里只是读取这个引脚的状态。

那个弹跳电路,我没有研究过。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-3 18:58 , Processed in 0.307971 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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