初级会员

- 积分
- 66
- 金钱
- 66
- 注册时间
- 2019-4-13
- 在线时间
- 14 小时
|
1金钱
刚刚看了原子哥ucos关于时间片轮转调度,对于例程有一些疑惑。在原子哥的视频里,创建任务时,如果时间片的数不够(是1或2)的时候,就会在串口打印出现一些问题。在例程中,每个任务连续打印5次,自定义的字符串。我的疑问是当时间片为2时候,也有10ms一个时间执行一次任务,按理说应该是足够的(因为我看了一下连续打印5次到串口没有用到延时之类的函数,按理说是一瞬间,应该比10ms短),为什么会出现执行时间不足,不能完整打印完字符串,是什么在制约它。而且时间片再短(为1时),每个任务都还是执行断开打印出来都是”task1:“和“1234/r/n”这样隔开,为什么呢,不能是“task1:12”和“34/r/n”这样随机断开呢,原因又是什么。
|
-
捕获2.PNG
(140.46 KB, 下载次数: 96)
任务函数的代码
-
捕获1.PNG
(45.45 KB, 下载次数: 89)
当时间片设置过小时,串口打印的数据
-
捕获.PNG
(53.25 KB, 下载次数: 91)
时间片数设置
|