μCOS-II系统之时间管理函数OSTimeDly()

因实际项目需要,近段时间花了一点时间学习了μCOS-II实时系统。该系统用于多媒体播放器,现在刚好通过结合实际产品系统的学习一下μCOS-II操作系统。很幸运有这个机会系统的学习下。下面说说μCOS-II系统中的时间管理部分的系统函数。

μC/OS-II提供了若干个时间管理服务函数,可以满足任务在运行过程中对时间管理的需求。在使用时间管理服务函数时,必须十分清楚一个事实:时间管理服务函数是以系统节拍为处理单位的,实际的时间与希望的时间是有误差的,最坏的情况下误差接近一个系统节拍。因此时间管理服务函数只能用在对时间精度要求不高的场合,或者时间间隔较长的场合。

下面来分析系统延时函数OSTimeDly()调用图解:

μCOS-II系统之时间管理函数OSTimeDly()_第1张图片

如上图所示:形象的说明了OSTimeDly()工作方式。下面通过一个实例来说明下:我们设计一个任务,让一个LED以50个时钟节拍为单位

闪耀,说明OSTimeDly()函数的用途。由于篇幅关系,只给出任务主要处理代码。

 

void TaskLED (void *pdata)

{

…… //初始化代码

while (1) //循坏控制LED以固定频率闪烁

{

 

IO0CLR = LED1; //点亮LED

OSTimeDly(25); //延时25个节拍

IO0SET = LED1; //熄灭LED

OSTimeDly(25); //延时25个节拍

}

}

注意:上面的设计是OSTimeDly() 控制任务的周期性执行,还可以用它来控制任务的运行节拍。

 

 

 

你可能感兴趣的:(工作,IO,任务,产品)