硬汉嵌入式论坛

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

[emWin] 画圆使用的耗资源问题,有没有了解的?

[复制链接]

6

主题

13

回帖

31

积分

新手上路

积分
31
发表于 2021-7-2 20:32:39 | 显示全部楼层 |阅读模式
429板子,用GUI_DrawCircle画圆,用示波器抓数据,大圆是ms级别的(半径60大概是4ms),小圆是175个us(半径为5),大家有遇到这个吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107470
QQ
发表于 2021-7-3 09:43:27 | 显示全部楼层
楼主发你的时间测试部分代码,我测量下,4ms时间太长了,比贴图还慢。
回复

使用道具 举报

6

主题

13

回帖

31

积分

新手上路

积分
31
 楼主| 发表于 2021-7-3 15:19:05 | 显示全部楼层
eric2013 发表于 2021-7-3 09:43
楼主发你的时间测试部分代码,我测量下,4ms时间太长了,比贴图还慢。

这个是测试的3个画圆函数的耗时,发现坐标,半径都会影响画圆的效率。
  //  GUI_DrawCircle(153,221,125);//4.5ms
  //  GUI_DrawCircle(0,0,125);//1.6ms
  //  GUI_DrawCircle(0,0,60);//750us
  //  GUI_DrawCircle(0,0,5);//100us
  //  GUI_DrawCircle(153,221,5);//250us
  //  GUI_DrawCircle(153,221,60);//2.3ms
  
  // GUI_DrawArc(153,221,125,125,0,360);//2.8ms
  // GUI_DrawArc(153,221,60,60,0,360);//1.4ms
  // GUI_DrawArc(153,221,5,5,0,360);//175us
  // GUI_DrawArc(0,0,125,125,0,360);//1.1ms
  // GUI_DrawArc(0,0,60,60,0,360);//550us
  // GUI_DrawArc(0,0,5,5,0,360);//100us
  // GUI_DrawArc(153,153,5,5,0,360);//145us
  
  // GUI_DrawEllipse(153,221,125,125);//2.9ms
  // GUI_DrawEllipse(13,221,125,125);//1.7ms
  // GUI_DrawEllipse(153,221,60,60);//1.4
  // GUI_DrawEllipse(153,221,5,5);//140us
  // GUI_DrawEllipse(0,0,125,125);//1ms
  // GUI_DrawEllipse(0,0,60,60);//500us
  // GUI_DrawEllipse(0,0,5,5);//60us

下面这个是测试画圆耗时的代码,通过测试灯来测试函数的执行时间。
  LED1_Open();  
  GUI_DrawEllipse(0,0,5,5);//60us
  LED1_Close();
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107470
QQ
发表于 2021-7-3 19:05:48 | 显示全部楼层
Cloud123456 发表于 2021-7-3 15:19
这个是测试的3个画圆函数的耗时,发现坐标,半径都会影响画圆的效率。
  //  GUI_DrawCircle(153,221,12 ...

方便的话,要发个完整点的,单纯测试这个函数价值不是很高。
回复

使用道具 举报

6

主题

13

回帖

31

积分

新手上路

积分
31
 楼主| 发表于 2021-7-5 15:07:10 | 显示全部楼层
eric2013 发表于 2021-7-3 19:05
方便的话,要发个完整点的,单纯测试这个函数价值不是很高。

比如在示例程序,STemWin实验_Dropdown下拉列表控件(RTOS)在MainTask()函数中增加画圆函数,GUI_DrawArc(153,221,125,125,0,360);画出来也要2.5左右ms。我这边需要实时刷新快20个圆,25ms有点太长了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107470
QQ
发表于 2021-7-5 15:24:29 | 显示全部楼层
Cloud123456 发表于 2021-7-5 15:07
比如在示例程序,STemWin实验_Dropdown下拉列表控件(RTOS)在MainTask()函数中增加画圆函数,GUI_Draw ...

帮你测试了,我这里是2.2ms一个,这个不好优化,STM32所有系列没有画圆硬件加速。建议你换个实现方法,比如使用存储设备什么的,提前绘制好,画图都比这个快。
QQ图片20210705152443.png
回复

使用道具 举报

6

主题

13

回帖

31

积分

新手上路

积分
31
 楼主| 发表于 2021-7-5 16:05:30 | 显示全部楼层
eric2013 发表于 2021-7-5 15:24
帮你测试了,我这里是2.2ms一个,这个不好优化,STM32所有系列没有画圆硬件加速。建议你换个实现方法,比 ...

好的!谢谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-3 05:00 , Processed in 0.173235 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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