TI中文支持网
TI专业的中文技术问题搜集分享网站

如何获取系统时间

您好:

关于如何获取系统时间有个疑问:

1、RF_getCurrentTime获取到的单位是TICK,4000个TICK是1毫秒,但是这个返回值是32位的,不到20分钟就溢出了,所以是否有其他的系统时间获取接口函数,最好是获取到ms级别的;

2、看到Clock_getTicks()这个函数,返回值默认是10us,看有地方说修改cfg文件的Clock.tickPeriod = 10;这个参数可以调整返回值的单位,是不是意思我修改为Clock.tickPeriod = 1000,那么这个函数的返回值单位就变成了ms呢?说是修改*.cfg文件的参数,是这个路径的么?simplelink_cc13x2_26x2_sdk_4_20_00_35\kernel\tirtos\builds\CC1352P1_LAUNCHXL\debug\debug.cfg,可是我修改了debug与release下的cfg文件,感觉没有生效,是否还需要进行别的参数的修改呢?

Kevin Qiu1:

1.获取系统时间用的就是Clock_getTicks()2.看下这里的说明,和电源以及晶振有关,不是这个路径,在app.cfg中修改
/* ================ Clock configuration ================ */
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
/** When using Power and calibrateRCOSC is set to true, this should be set to 10.* The timer used by the Clock module supports TickMode_DYNAMIC. This enables us* to set the tick period to 10 us without generating the overhead of additional* interrupts.** Note: The calibrateRCOSC parameter is set within the Power configuration*structure in the "Board.c" file.*/
Clock.tickPeriod = 10;

Kevin Qiu1:

对于ms级别的获取,是通过宏定义来实现的
/*! Clock tick period*/
#define CLOCK_TICK_PERIOD(10)
/*! tick number for one ms*/
#define TICKPERIOD_MS_US(1000/(CLOCK_TICK_PERIOD))

user6380627:

回复 Kevin Qiu1:

还是有点不明白,使用电源及内部晶振的时候,这个参数就必须设置为10us,也就是这个函数的返回值单位必须是10us?

路径是:

simplelink_cc13x2_26x2_sdk_4_20_00_35\source\ti\ti154stack\common\boards\CC13X2_LAUNCHXL\app.cfg?改了这里面的参数后感觉没生效啊,改多少,1ms对应的TICKS都是100个。

而且感觉这个精度还不够啊,其实1ms对应的是82个TICK

YiKai Chen:

回复 user6380627:

Clock_getTicks精度就是10us,如果要更精準,你可能需要透過timer interrupt自己去做

赞(0)
未经允许不得转载:TI中文支持网 » 如何获取系统时间
分享到: 更多 (0)