1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #include "timer.h"
- #include "io.h"
- static uint64_t __time_us;
- static uint64_t __delta_time_us;
- unsigned long time_micros()
- {
- #ifdef __linux__
- return 0;
- #else
- return millis()*1000;
- #endif
- }
- void micro_sleep(unsigned long x)
- {
- #ifdef __linux__
- usleep(x);
- #else
- delay(x/1000);
- #endif
- }
- void timer_init()
- {
- __time_us=0;
- }
- uint64_t get_time_us()
- {
- #ifdef __linux__
- uint64_t ret;
- struct timespec t;
- clock_gettime(CLOCK_REALTIME, &t);
- ret=(t.tv_nsec+t.tv_sec*1000000000)/1000;
- return ret;
- #else
- return 0;
- #endif
- }
- void set_delta()
- {
- __delta_time_us=__time_us;
- }
- uint64_t get_delta()
- {
- return __time_us-__delta_time_us;
- }
|