初级会员
- 积分
- 179
- 金钱
- 179
- 注册时间
- 2013-11-11
- 在线时间
- 0 小时
|
5金钱
最近成功移植了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 ... */
}
|
最佳答案
查看完整内容[请看2#楼]
问题解决了,GUI_GetTime()优先级太小默认为max-3,把这个优先级改成大于demo程序的值,就没问题了!谢谢两位
|