OpenModem/util/time.h
2014-12-03 01:10:06 +01:00

34 lines
584 B
C

#ifndef UTIL_TIME_H
#define UTIL_TIME_H
#include "device.h"
#define DIV_ROUND(dividend, divisor) (((dividend) + (divisor) / 2) / (divisor))
#define CLOCK_TICKS_PER_SEC CONFIG_AFSK_DAC_SAMPLERATE
typedef int32_t ticks_t;
typedef int32_t mtime_t;
volatile ticks_t _clock;
inline ticks_t timer_clock(void) {
ticks_t result;
ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
result = _clock;
}
return result;
}
inline ticks_t ms_to_ticks(mtime_t ms) {
return ms * DIV_ROUND(CLOCK_TICKS_PER_SEC, 1000);
}
inline void cpu_relax(void) {
// Do nothing!
}
#endif