写在前面
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