嵌入式学习小组
直播中

洪茗苞

7年用户 260经验值
私信 关注

如何设置UCOSiii时间片轮转的时间大小?

在开始任务中创建:任务2、1,见图1;任务2、1的具体内容见图2
描述:当两任务的时间片数取1(5ms)时,时间不够打印for里面的5次循环,见图3。故将时间片数取2(10ms),这时时间充足(打印5次应该用不了10ms)。
???问题在于:图4中,两任务在第一遍都打印5次后,为什么第二遍打印不全了?难道第二次运行的时候,时间片不是重新分配10ms吗???这个图4怎么理解?
后来,自己多添加了一句OSSchedRoundRobinYield,即在图2中注释的部分(将两任务的10ms中多余时间 主动放弃)。然后就能得到我想要的结果图5。但是图4中就有没有相通原因,即使我没放弃多的时间,下次执行应该还是重新分配10ms呀?
求大神出现。。。。。

回帖(2)

李耀鑫

2019-10-15 06:14:20
楼主原话-----这时时间充足(打印5次应该用不了10ms)
不要凭感觉,靠实际测试说明问题,加个定时器计时一下,看打印实际需要时长
从楼主问题描述,像是时间不足引起的
举报

李颜

2019-10-15 06:22:10
我最开始也这样想过,但是从图3中可以看出:5ms能打印4个,从图4可以看出10ms下第一轮打印了5个呀,只是后面打不够5个
恩,也。可以加个定时看看。。。但是上面描述的这种情况,有点理解不了
举报

更多回帖

发帖
×
20
完善资料,
赚取积分