硬汉嵌入式论坛

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

[emWin] 如何处理裸机emwin GUI_Delay()延时问题?

[复制链接]

14

主题

37

回帖

79

积分

初级会员

积分
79
发表于 2021-4-8 15:16:34 | 显示全部楼层 |阅读模式
如题,由于成本问题,目前用的芯片内存已经使用到极限,没有上RTOS,使用裸机跑stemwin。
遇到尴尬的问题,由于GUI运行需要调用GUI_Delay。但是在while里面调用GUI_Delay,会有一定的延时,影响其他功能。如某个要一直运动的设备会断断续续工作。

不使用RTOS,有方法优化吗?

  while(1)
  {
    GUI_Delay(1);
    loop();      /*任务*/
  }




回复

使用道具 举报

23

主题

336

回帖

405

积分

高级会员

积分
405
发表于 2021-4-8 20:25:17 | 显示全部楼层
同问,一样的问题
回复

使用道具 举报

3

主题

423

回帖

432

积分

高级会员

积分
432
发表于 2021-4-8 22:03:26 | 显示全部楼层
用GUI_Exec()代替会好一点点;不过单任务不能根治问题。GUI刷新的时间不可避免,肯定延长循环周期的。
回复

使用道具 举报

100

主题

299

回帖

599

积分

金牌会员

123

积分
599
发表于 2021-4-9 08:04:15 | 显示全部楼层
也就是说裸机stemwin怎么保证实时性?我也有这个疑问
回复

使用道具 举报

100

主题

299

回帖

599

积分

金牌会员

123

积分
599
发表于 2021-4-9 13:28:25 | 显示全部楼层
裸机用emwin如何保证实时性,有哪些方法?复杂的界面多久调用一次显示比较合适?
回复

使用道具 举报

3

主题

423

回帖

432

积分

高级会员

积分
432
发表于 2021-4-9 14:02:21 | 显示全部楼层
总之一句话:emWin不负责你应用的实时性,它只负责GUI
回复

使用道具 举报

354

主题

2164

回帖

3231

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3231
发表于 2021-4-16 10:08:28 | 显示全部楼层
本帖最后由 caicaptain2 于 2021-4-16 10:10 编辑
ssssssss 发表于 2021-4-9 13:28
裸机用emwin如何保证实时性,有哪些方法?复杂的界面多久调用一次显示比较合适?

GUI的实时性的概念不一样。 基本上GUI做到200ms的刷新和反映就足够了。所以,建议GUI_Execs调用间隔设定100ms足够了。
但是其他外色任务的实时性要求差别就很大了,从微秒,到毫秒都有可能。
int i=0;
while(1)
  {
i++
if (i==100)  {GUI_Execs();i=0;}
    loop();      /*任务*/
  }
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-20 13:16 , Processed in 1.466121 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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