| 123456789101112131415161718192021222324252627282930313233343536 |
- #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) {}
|