硬汉嵌入式论坛

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

[emWin] emwin触摸采用那种方法比较好

[复制链接]

25

主题

91

回帖

166

积分

初级会员

积分
166
发表于 2022-11-2 10:13:47 | 显示全部楼层 |阅读模式
看了三家的emwin的触摸实现方法:
1.原子
GUI_X_Touch_Analog.c文件中给
int  GUI_TOUCH_X_MeasureX(void)
{

        
        return 0;
}


int  GUI_TOUCH_X_MeasureY(void)
{

        return 0;
}

提供x,y数据


然后开个触摸任务
void touch_task(void *pvParameters)
{
        while(1)
        {
                GUI_TOUCH_Exec();        
                vTaskDelay(5);                //延时5ms
        }
}



2.野火
基于GUI实现一个触摸检测函数,在
void touch_task(void *pvParameters)
{
        while(1)
        {
                GT9xx_GetOnePiont();
                vTaskDelay(5);                //延时5ms
        }
}
未使用GUI_X_Touch_Analog.c

3.安富莱

实现触摸检测,在定时器中调用,未使用GUI_X_Touch_Analog.c,也没创建触摸检测任务。

大家觉得那种好?
我还是喜欢第一种,套用GUI现有东西,那种比较好理解。

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106882
QQ
发表于 2022-11-2 10:26:30 | 显示全部楼层
显然我们的触摸实现你没有认真学习。

1、使用GUI_X_Touch_Analog.c是早期uCGUI3.x时代的玩法,可以搜我论坛一堆移植帖子,都是这个玩法。

2、进入emWin5.x就不再采用这种玩法了,电容屏不方便使用,核心就是调用GUI_PID_StoreState即可,简单易移植,随调随用,这个分两种
(1)OS下必定是创建一个任务,

image.png

(2)而裸机下,推荐采用这种方案,这个是完美配合emWin的玩法。

image.png



回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106882
QQ
发表于 2022-11-2 10:37:20 | 显示全部楼层
进入emWin6.x后,我们统一了裸机,emWin和ThreadX GUIX的触摸玩法。

ThreadX GUIX,emWin6.x和裸机触摸触发方案已经完全统一
https://www.armbbs.cn/forum.php? ... 4061&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

19

主题

371

回帖

428

积分

高级会员

积分
428
发表于 2022-11-2 11:16:47 | 显示全部楼层
一般处理方法(uCOS III):
1. 用任务1(定时任务或者中断任务)读取硬件坐标ADC值,发送事件通知任务2,-- 任务1的作用是定期读取触控ADC值
2. 任务2等待任务1的事件通知,处理ADC数据后,调用GUI_PID_StoreState(将数据保存在emWin的内部缓冲区),-- 任务2的作用是中间层,可以处理任何数据(比如忽略部分触控数据,或者人为增加数据用于测试等等...)
3. 任务1,任务2的优先级一样,都比emWin应用的优先级高
这样处理很灵活
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-8 23:00 , Processed in 0.186342 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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