ucos ii 系统的OSTimeDlyHMSM() 函数详解

        OSTimeDlyHMSM()是ucos ii里的一个高精度任务延迟函数,允许以时、分、秒、毫秒为单位指定延迟时间,比OSTimeDly()函数提供更加直观的时间控制。

函数原型

void OSTimeDlyHMSM (INT8U   hours,
                    INT8U   minutes,
                    INT8U   seconds,
                    INT16U  milliseconds);

参数 hours,延迟的小时数,数据范围:0~99
参数 minutes,延迟的分钟数,数据范围:0~59
参数 seconds,延迟的秒数,数据范围:0~59
参数 milliseconds,延迟的毫秒数,数据范围:0~999

函数特性:

任务挂起,调用该函数的任务将进入等待状态;
系统调度,触发任务调度,让出CPU给其他就绪任务;
时间基准,依赖系统的ticks(OS_TICKS_PER_SEC);
非阻塞,不会阻塞中断或其他任务。

示例:

1、基本延时;

void Task(void *p_arg) {
    while (1) {
        /* 任务主体代码 */
        
        /* 延时1小时1分1秒1毫秒 */
        OSTimeDlyHMSM(1, 1, 1, 1);
        
        /* 延时100毫秒 */
        OSTimeDlyHMSM(0, 0, 0, 100);
    }
}

2、周期性任务;

void Task(void *p_arg) {
    while (1) {
           
        /* 每5秒执行一次 */
        OSTimeDlyHMSM(0, 0, 5, 0);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值