因实际项目需要,近段时间花了一点时间学习了μCOS-II实时系统。该系统用于多媒体播放器,现在刚好通过结合实际产品系统的学习一下μCOS-II操作系统。很幸运有这个机会系统的学习下。下面说说μCOS-II系统中的时间管理部分的系统函数。
μC/OS-II提供了若干个时间管理服务函数,可以满足任务在运行过程中对时间管理的需求。在使用时间管理服务函数时,必须十分清楚一个事实:时间管理服务函数是以系统节拍为处理单位的,实际的时间与希望的时间是有误差的,最坏的情况下误差接近一个系统节拍。因此时间管理服务函数只能用在对时间精度要求不高的场合,或者时间间隔较长的场合。
下面来分析系统延时函数OSTimeDly()调用图解:
如上图所示:形象的说明了OSTimeDly()工作方式。下面通过一个实例来说明下:我们设计一个任务,让一个LED以50个时钟节拍为单位
闪耀,说明OSTimeDly()函数的用途。由于篇幅关系,只给出任务主要处理代码。
void TaskLED (void *pdata)
{
…… //初始化代码
while (1) //循坏控制LED以固定频率闪烁
{