最近在做行为识别的课题,需要做一些IMU的设备,很久不做单片机这些东西了,捡起来有点小痛苦啊。
遇到一个问题就是需要在数据前打时间戳,但是I2C总线已经被其他数据占了,无法使用外部RTC设备,最后想只能用串口的外部时间加内部的时钟还进行计时了。
库
在github上找到了一个arduino的时间库,用起来不错,在这里。
可支持从串口输入、外部RTC电路、网络、GPS等方式进行时间校准。
Tips
一些使用的注意事项:
1. 库中的time_t t是从1970年1月1号零点到现在的秒数,但注意这个得到的是基于格林尼治时间,即GMT+0,如果要在中国的话就要在小时后+8了,同时要注意24小时的取模问题。
2. t在linux上可以用命令date +T%s
来获得,前面的T是库里定义的起始符。
3. 在安卓系统里,可以用System.CurrentTimeMillis()来获得,long类型。
4. IOS代码:
NSTimeInterval time=[[NSDate date] timeIntervalSince1970]*1000;
double i=time; //NSTimeInterval返回的是double类型
NSLog(@"1970timeInterval:%f",i);