TI-RTOS实时操作系统开发之关于时间方面的使用事例

TI-RTOS提供多样化的计时API,包括获取系统嘀嗒时间、任务休眠、事件超时和定时器功能。任务休眠通过Task_sleep()实现,事件超时用Event_pend()设置,而定时器则可通过Clock_construct()创建,支持单次和周期性定时任务。这些功能的时间单位都是Clock_tickPeriod。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面
TI-RTOS提供了丰富的时间计时API,包括当前系统运行实时嘀嗒、任务休眠时间、事件超时、定时器等等

一、当前系统运行实时嘀嗒
该时间是从芯片上电开始计时,时间单位:Clock_tickPeriod
相关API:

获取当前嘀嗒时间(长度:32位):Clock_getTicks()
路劲:
C:\ti\simplelink_cc13x0_sdk_3_20_00_23\kernel\tirtos\packages\ti\sysbios\knl\Clock.h
二、任务休眠
时间单位:Clock_tickPeriod
API:Task_sleep(333000/Clock_tickPeriod);
API 说明:Clock_tickPeriod为系统时钟周期
路劲:C:\ti\simplelink_cc13x0_sdk_3_20_00_23\kernel\tirtos\packages\ti\sysbios\knl\Task.h

三、事件或信号量超时时间
时间单位:Clock_tickPeriod
API:Event_pend(radioOperationEventHandle, 0, RADIO_EVENT_ALL, eventsTimeOut);
API 说明:eventsTimeOut的时间单位为Clock_tickPeriod
超时返回值为0,非0根据Event_post(radioOperationEventHandle, RADIO_EVENT_SEND_ADC_DATA);的信号量决定
路劲:C:\ti\simplelink_cc13x0_sdk_3_20_00_23\kernel\tirtos\packages\ti\sysbios\knl\Event.h

三、定时器
举例:
    Clock_Params clkParams;
    Clock_Params_init(&clkParams);
    clkParams.period = 5*1000*1000 / Clock_tickPeriod;
    clkParams.startFlag = FALSE;
    Clock_construct(&perierd_ClockStruct, periodClockCallback, 1, &clkParams);
    perierd_ClockHandle = Clock_handle(&perierd_ClockStruct);
    // Clock_start(perierd_ClockHandle); 
    // Clock_stop(perierd_ClockHandle); 

说明:
period(时间单位:Clock_tickPeriod):计时周期时间,为0表示单次超时定时器,非0表示周期性定时器,
startFlag:初始化后是否开始计时
Clock_construct参数一:略过,参数二:计时时间到回调,参数三:单次计时超时时间(时间单位:Clock_tickPeriod,period为0有效),参数四:略过
Clock_start(perierd_ClockHandle);开始计时
Clock_stop(perierd_ClockHandle);暂停计时
————————————————
版权声明:本文为优快云博主「---牧马人---」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/LinQiPing233/article/details/97261931

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值