您好:
关于如何获取系统时间有个疑问:
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自己去做