完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
因为我将emWin+ucos的例程拿去改成自己的东西,就是讲gui任务改了下,结果黑屏,我怀疑是没有进行更新操作的,然后我转向分析demo的代码。任务的伪代码如下,然后我在GUIDEMO_Main();里面一步步进行查找,始终找不到他进行更新的地方。里面老是一些操作,没有什么延时什么的。
所以我想请大家帮忙的就是: 帮忙分析下他的重绘机制,找出他在什么地方跳出去重绘了,谢谢大家。普通浏览复制代码
|
|
相关推荐
6个回答
|
|
不懂,帮顶。。。。
|
|
|
|
恩,谢谢原子哥啦
|
|
|
|
|
|
|
|
看来gui、ucos还有很多人都不是很熟悉,居然没有人知道,后来找到水哥才知道原来是GUI_Exec
可以看到在每个小demo中间的部分肯定会有这个GUI_Exec();,下面也有说, Allow short breaks so we do not use all available CPU time ... for (i = 0; ((GUIDEMO_GetTime() - TimeStart) < 5000) && (GUIDEMO_CheckCancel() == 0); i++) { GUI_SetColorIndex(aColorIndex[i&7]); // // Calculate random positions // Rect.x0 = rand() % xSize - xSize / 2; Rect.y0 = rand() % ySize - ySize / 2; Rect.x1 = Rect.x0 + 20 + rand() % xSize; Rect.y1 = Rect.y0 + 20 + rand() % ySize; GUI_FillRect(Rect.x0, Rect.y0, Rect.x1, Rect.y1); // // Clip rectangle to visible area and add the number of pixels (for speed computation) // if (Rect.x1 >= xSize) 之前很多人的错误答案是OSTIMEDLY,实际上这个在没有gui的时候是一样,只能起释放CPU使用权的作用!!没有重绘的功能。很多人会说他是在代替GUIDelay,实际上不是的,GUIDelay是有重绘功能的! 还有一个是一般GUI_Exec都会被放在一个单独的任务中,但是官方的例程没有!! 对此水哥是这样子说的: 官方提供的demo的演示流程就是轮流走一边 只不过把触屏处理放到了一个任务中。其实和落跑没什么关系 之所以每个demo中都有个GUI_Exec 是因为每个demo都可以单独使用。 不管用不用OS 刷新任务一定要用到GUI_Exec 和应用放到一起还是单独任务 这个由开发者决定,另外 至于两个dly的作用, 和我之前说的一样 一个刷新加延时 一个单纯延时 |
|
|
|
谢谢分享.
|
|
|
|
对的,在运行RTOS系统中一般是单独建立一个任务来执行GUI_Exec()和GUI_ExecIdle()函数,GUI_ExecIdle()里面是你移植的OS_TimeDly
而且这个任务的优先级是所以用户级任务中优先级最低的,或者是处于倒数几个优先级内的,一定要确保等到其他调用GUI函数的任务执行完GUI的函数后才发生任务调度,否则当调用GUI_Exec()时会引起重绘混乱,执行重绘操作不应影响系统的实时性,因为GUI_Exec()实为一可重入函数,因此一般只有一个任务中有该函数被周期性执行。可以单独建立一个任务来执行GUI_Exec()或者将其放在一个最低优先级的任务中。 |
|
|
|
只有小组成员才能发言,加入小组>>
722 浏览 0 评论
1123 浏览 1 评论
2505 浏览 5 评论
2840 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2685 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
664浏览 9评论
679浏览 7评论
682浏览 5评论
666浏览 5评论
imx6dl芯片与imx6q芯片互换启动无反应请问是什么问题呢
287浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-30 23:06 , Processed in 1.135420 second(s), Total 88, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号