硬汉嵌入式论坛

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

[emWin] emwin的内存设定与刷新速度密切相关,实测结果

[复制链接]

354

主题

2164

回帖

3231

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3231
发表于 2015-12-15 12:10:23 | 显示全部楼层 |阅读模式
今日做了一下emwin的界面刷新的测试。主芯片是F103,使用内部RAM,屏的分辨率800x480,RA8875控制。

一个界面,包含8个text控件和1个graphic控件。每1s刷新一次。设定不同的emwin缓存,使用IO实测刷新实际的占用周期。
#define GUI_NUMBYTES  (1024*45)

//示波器实测 2015-12-15
//如果改为20k,主界面控件刷新时间高达2s.
//如果改为30k,主界面控件刷新时间高达0.6s.
//如果改为40k,主界面控件刷新时间0.35s
//如果改为45k,主界面控件刷新时间0.22s; 全屏界面切换-刷新耗时1s

刷新时间只有在0.1s以内,视觉效果才感觉好。
所以,使用F103做界面的话,最好要外扩SRAM,内部的实在太局促了。。。

另外,如果有2个界面需要切换,最好把不用的界面hide起来。hide的界面会执行WM_TIMER中的命令,但是不会刷新界面。
如果使用WM_BringToTop和WM_BringToBottom的话,bottom'的界面还是会占用相当多的资源。实测感觉上是,先刷新bottom的窗口,还要再刷新top的窗口,无谓的耗用资源。

实测Graphic控件消耗刷新时间最多。即使我只是往其中加入一个数据,刷新一个尺寸250x500的Graphic控件需要约70ms。显示效果只是曲线往左边移了一格而已。

评分

参与人数 1 +5 收起 理由
eric2013 + 5

查看全部评分

回复

使用道具 举报

11

主题

103

回帖

31

积分

初级会员

积分
31
发表于 2015-12-15 15:27:48 | 显示全部楼层
不错,话说这个时间是怎么测的?
回复

使用道具 举报

5

主题

582

回帖

597

积分

版主

Rank: 7Rank: 7Rank: 7

积分
597
发表于 2015-12-16 09:29:49 | 显示全部楼层
你是通过隐藏界面的方式来实现多个界面的么,这样任意时刻不是存在多个界面元素么。。。

这样做不知道内存占用和系统占用多不多,我记得官方有个例子是虚拟一个比真实屏幕大得多的界面
然后将不少界面放到其他地方保证窗口不剪切,界面切换只需要修改显示坐标,刷新速度相当的快,但是内存消耗就比较大了,此做法可以避免剪切域的影响
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115787
QQ
发表于 2015-12-17 19:20:18 | 显示全部楼层
[s:151] [s:151]
回复

使用道具 举报

354

主题

2164

回帖

3231

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3231
 楼主| 发表于 2015-12-18 00:18:53 | 显示全部楼层

回 qq27488 的帖子

qq27488:不错,话说这个时间是怎么测的?  (2015-12-15 15:27) 
函数执行的入口和出口设定IO的高低电平,然后用示波器测试高低电平的间隔时间。这个是比较准的。

比如界面的刷新时间是测试GUI_Delay()函数的耗时即可。不同界面下,这个函数的耗时完全不一样。
回复

使用道具 举报

354

主题

2164

回帖

3231

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3231
 楼主| 发表于 2015-12-18 00:22:01 | 显示全部楼层

回 myxiaonia 的帖子

myxiaonia:你是通过隐藏界面的方式来实现多个界面的么,这样任意时刻不是存在多个界面元素么。。。

这样做不知道内存占用和系统占用多不多,我记得官方有个例子是虚拟一个比真实屏幕大得多的界面
然后将不少界面放到其他地方保证窗口不剪切,界面切换只需要修改显示坐标,刷新速度相当的快 .. (2015-12-16 09:29) 
主要是基于这个考虑的。很多人说动态的窗口创建和消除几十次后,容易造成莫名死机。而且原因难以查找。

我有4个主要界面,初始化的时候就全部创建了,使用的时候通过hide和show进行切换。至少运行了一个月都没有任何死机的情况。 实际设定emwin缓存约40k,全部大小控件也有30个左右,emwin实际显示剩余可用的缓存有20k。
回复

使用道具 举报

10

主题

51

回帖

10

积分

初级会员

积分
10
发表于 2016-4-5 11:50:51 | 显示全部楼层
emwin的刷新速率跟什么有关系呢?我的F429用的LTDC刷800*480的屏,RGB888格式,帧率在24左右。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-18 12:33 , Processed in 0.230837 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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