#include "hard_system_time.h" #include "soft_time.h" //系统时间定时器初始化 void system_time_initial(void) { system_time_init(); } //获取系统时间 unsigned int micros(void) { return hard_micros(); } //获取两次时间差,同时处理超过72分钟重新计时的错误问题。单位us #define ERR_DT 2500 unsigned int time_interval(unsigned int time_cur, unsigned int *time_last) { unsigned int interval = time_cur - *time_last; if (time_cur < *time_last) { *time_last = time_cur; interval = ERR_DT; } return interval; } /* 测试发现,32位寄存器的CPU上两个时间差不会出现一个循环后卡死的情况。//10081142 - 4105048205 = 200000233; 测试micros() = 10081142(0X 99 D376), system_time = 4105048205(0X F4AE 108D), micros() - system_time = 200000233. */ //试图解决32位定时器只能计时72分钟,用64位的变量来累计计时 void time_hookfunction(void) {}