While(1)//死循环
{ 任务 MyTask 实体代码;
OSTimeDlyHMSM(x,x,x,x);//调用任务延时函数,释放 cpu 控制权,
}
}
假如我们新建了 2 个任务为 MyTask 和 YourTask,这里我们先忽略任务优先级的概念,两个
任务死循环中延时时间为 1s。如果某个时刻,任务 MyTask 在执行中,当它执行到延时函数
OSTimeDlyHMSM 的时候,它释放 cpu 控制权,这个时候,任务 YourTask 获得 cpu 控制权开
始执行,任务 YourTask 执行过程中,也会调用延时函数延时 1s 释放 CPU 控制权,这个过程中
任务 A 延时 1s 到达,重新获得 CPU 控制权,重新开始执行死循环中的任务实体代码。如此循
环,现象就是两个任务交替运行,就好像 CPU 在同时做两件事情一样。
疑问来了,如果有很多任务都在等待,那么先执行那个任务呢?如果任务在执行过程中,
ALIENTEK 战舰STM32开发板
www.openedv.com
1