天驰号

首页 > 财经问答

财经问答

ucosii,Ucosiii 延时函数

发布时间:2024-06-11 10:22:24 财经问答

ucosii,Ucosiii 延时函数

1. ucosii基本

ucosii简介

ucosii是基于任务优先级抢占式任务调度法的实时内核,通过内核管理调度时调用任务切换函数实现任务调度。一般为ssched,在该函数中将处于就绪状态且为最高优先级的任务的信息压入CPU寄存器中。

示例代码解析

示例代码中使用了OSTimeDlyHMSM函数进行相对延时操作,即延时1秒加上20毫秒。

2. ucosii的延时函数

OSTimeDly和OSTimeDlyHMSM函数

延时函数由两个OSTimeDly和OSTimeDlyHMSM组成,实际上OSTimeDlyHMSM内部也是调用OSTimeDly函数实现延时。不同之处在于OSTimeDlyHMSM具有更多参数,可以指定延时的小时、分钟、秒以及毫秒。

任务的基本格式

ucosii中任务的一般格式为定义void类型的任务函数MyTask,在函数中进行任务准备工作,并在死循环中执行任务实体代码。使用OSTimeDlyHMSM函数进行延时操作。

用户自定义延时函数

在使用UCOSIII过程中发现,调用系统提供的延时函数延迟时间不准确。因此可以进行用户自定义的阻塞式延时函数,尽量在微秒级别,以不影响系统任务调度。

延时函数功能

延时函数的功能是实现任务延迟操作,包括OSTimeDly和OSTimeDlyHMSM两个函数。参数包括时间长度和延时选项。

系统提供的延时函数

在ucosii中,系统提供了OSTimeDly和OSTimeDlyHMSM两个延时函数,可以根据需求选择使用。前者基于节拍数衡量延时时间,后者则可以指定具体的小时、分钟、秒和毫秒。