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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/LinQiPing233/article/details/97261931

写在前面

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);暂停计时
展开阅读全文

没有更多推荐了,返回首页