μC/OS-Ⅲ系统的时间管理函数和定时器

时间:2023-03-09 03:12:40
μC/OS-Ⅲ系统的时间管理函数和定时器

一、时间管理函数

μC/OS-Ⅲ系统提供一些列时间管理服务函数:

1、OSTimeDly():任务延时n个时钟节拍。

2、OSTimeDlyHMSM():任务延时指定的时间,采用“时:分:秒:毫秒”方式指定。

3、OSTimeDlyResume():恢复被延时的任务。注意,一个任务利用这个函数恢复其他函数时,被恢复任务不知道自己是被其他任务恢复,会任务是延时结束而得到恢复。所以此函数要谨慎使用。

4、OSTimeGet():获取当前时钟节拍计数器的值。

5、OSTimeSet():设置时钟节拍计数器的值。

6、OSTimeTick():触发一次时钟节拍任务。

μC/OS-Ⅲ系统提供的时间管理函数是以时钟节拍中断和时钟节拍任务为基础的,同时由于内核、中断、高优先级任务的影响,所有时间管理函数提供的时间管理均不是精确值,只是一个大概的时间。

二、定时器

所谓定时器可以本质上是递减计数器,当计数器减到零时可以出发某种动作执行。这些需要执行的动作在μC/OS-Ⅲ中通过回调函数(callback function)来实现。

μC/OS-Ⅲ中可以定义任意数量定时器,相关服务代码在os_tmr.c中。若要启动定时器,需要再os_cfg.h中将OS_CFG_TMR_EN设置为1。定时器服务API包含6个函数:

1、OSTmrCreate():创建定时器并指定其运行模式。

2、OSTmrDel():删除定时器

3、OSTmrRemainGet():获取定时器剩余时间。

4、OSTmrStart():启动(或重启动)定时器技术。

5、OSTmrStateGet():获取当前定时器状态。

6、OSTmrStop():停止计数器倒计时。

μC/OS-Ⅲ中定时器共有三种:单次定时器,无初始延迟周期定时器、有初始延迟周期定时器。定时器内部管理机制参见本书第一版12.4节P147。