OpenEdv-开源电子网

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

裸机跑emwin 触摸屏的移植使用 触摸按钮延时问题

[复制链接]

2

主题

5

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2017-2-9
在线时间
21 小时
发表于 2017-2-9 11:17:35 | 显示全部楼层 |阅读模式
5金钱
我用M4跑emwin,移植好触摸屏能正常使用,但是触摸移植后,在使用emwin工具的触摸按钮过程中,触摸按钮要按住几秒按钮才会做出反应,松开也要几秒按钮才会恢复,这是什么原因,不跑emwin是正常,一直找不出原因啊

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

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2017-2-9 11:37:19 | 显示全部楼层
看一下触摸移植部分是不是正常的,emwin会定时检查触摸的,看看是不是这个任务周期太短了。
回复

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2017-2-9
在线时间
21 小时
 楼主| 发表于 2017-2-9 11:53:30 | 显示全部楼层
zuozhongkai 发表于 2017-2-9 11:37
看一下触摸移植部分是不是正常的,emwin会定时检查触摸的,看看是不是这个任务周期太短了。

中断是10ms进一次,检测触摸。

GUI_TIMER_TIME GUI_X_GetTime(void) {
  return OS_TimeMS;
}

void GUI_X_Delay(int ms) {
  int tEnd = OS_TimeMS + ms;
  while ((tEnd - OS_TimeMS) > 0);
}



void SysTick_Handler(void)
{
    OS_TimeMS ++;
    if(OS_TimeMS % 10 == 0)                                            /* 10ms进行指针位置更新 */
    {
                          DEBUGOUT("SysTick_Handler\r\n");
//        timerTick();
        touch_scan();
        GUI_TOUCH_Exec();                                               /* 让emWin获得鼠标信息  */
    }
}
回复

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2017-2-9
在线时间
21 小时
 楼主| 发表于 2017-2-16 10:56:37 | 显示全部楼层
YSPING 发表于 2017-2-9 11:53
中断是10ms进一次,检测触摸。

GUI_TIMER_TIME GUI_X_GetTime(void) {

问题找到了是我的中断频率设置问题,但是我的触摸坐标获取函数处理太慢如果放在定时10ms中断会卡死,这应该怎么处理,emwin触摸用起来不大会啊


void GUI_TOUCH_X_ActivateX(void) {
}
/*********************************************************************
*
*       GUI_TOUCH_X_ActivateY()
*
* Function decription:
*   Called from GUI, if touch support is enabled.
*   Switches on voltage on Y-axis,
*   prepares measurement for X-axis.
*   Voltage on X-axis is switched off.
*/
void GUI_TOUCH_X_ActivateY(void) {
}

/*********************************************************************
*
*       GUI_TOUCH_X_MeasureX()
*
* Function decription:
*   Called from GUI, if touch support is enabled.
*   Measures voltage of X-axis.
*/
int  GUI_TOUCH_X_MeasureX(void) {
//          touch_scan();
    return touch_point.x[0];
}

/*********************************************************************
*
*       GUI_TOUCH_X_MeasureY()
*
* Function decription:
*   Called from GUI, if touch support is enabled.
*   Measures voltage of Y-axis.
*/
int  GUI_TOUCH_X_MeasureY(void) {
//                touch_scan();
    return touch_point.y[0];
}
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 02:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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