完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近成功移植了ucosiii3.03和ucgui3.98 运行GUIDEMO_main();的时候在demo2.1处卡主但是一直刷屏(高优先级的LED任务不运行。就像死循环,任务调度没有了)
怀疑是下面for的条件 出了问题,但是搞了好久没有解决。任务堆栈给到了800. for (i = 0; (((t + 8000) - (int)GUI_Gettime()) > 0) && !GUIDEMO_CheckCancel(); i++) { GUI_RECT r; GUI_SetColorIndex(aColorIndex[i&7]); /* Calculate random positions */ r.x0 = rand() % XSize - XSize / 2; r.y0 = rand() % YSize - YSize / 2; r.x1 = r.x0 + rand() % XSize; r.y1 = r.y0 + rand() % YSize; GUI_FillRect(r.x0, r.y0, r.x1, r.y1); /* Clip rectangle to visible area and add the number of pixels (for speed computation) */ if (r.x1 >= XSize) r.x1 = XSize - 1; if (r.y1 >= YSize) r.y1 = YSize - 1; if (r.x0 < 0 ) r.x0 = 0; if (r.y1 < 0) r.y1 = 0; NumPixels += (r.x1 - r.x0) * (r.y1 - r.y0); /* Allow short breaks so we do not use all available CPU time ... */ } |
|
相关推荐
7个回答
|
|
问题解决了,GUI_GetTime()优先级太小默认为max-3,把这个优先级改成大于demo程序的值,就没问题了!谢谢两位
|
|
|
|
你试着把GUI_GetTime()和GUIDEMO_CheckCancel();的值,在你的for循环里面输出一下,看看是否发生变化了
|
|
|
|
uC/OS属于抢占式调度,跑Demo之前系统功能正常吗?
|
|
|
|
问题应该出现在GUI_GetTime(),输出为 一个值不变,但搞不懂为什么任务调度没有了,for循环一直执行。
|
|
|
|
之前是正常的,跑3个任务,2个LED闪烁,一个LCD显示,任务调度没有问题
|
|
|
|
|
|
|
|
加入OSTimeDlyHMSM()或者OSSched()应该就可以进行任务切换了。
|
|
|
|
只有小组成员才能发言,加入小组>>
692 浏览 0 评论
1106 浏览 1 评论
2473 浏览 5 评论
2808 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2646 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
653浏览 9评论
649浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
781浏览 6评论
628浏览 5评论
668浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 10:02 , Processed in 0.925880 second(s), Total 61, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号