X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;f=common%2Ftimer.h;h=f0c5ffc98ae6a4ebbf8995aa69ff5f84076e2b65;hb=a9f5f201ad6b009675fdf16c4447033cc2ac0995;hp=d24d3eab626f300d70204cc48229991ea9fc1c04;hpb=c5060ea81942b0e3f8577536ff78402a19abe3d3;p=max%2Ftmk_keyboard.git
diff --git a/common/timer.h b/common/timer.h
index d24d3eab..f0c5ffc9 100644
--- a/common/timer.h
+++ b/common/timer.h
@@ -20,40 +20,27 @@ along with this program. If not, see .
#include
-#ifndef TIMER_PRESCALER
-# if F_CPU > 16000000
-# define TIMER_PRESCALER 256
-# elif F_CPU > 2000000
-# define TIMER_PRESCALER 64
-# elif F_CPU > 250000
-# define TIMER_PRESCALER 8
-# else
-# define TIMER_PRESCALER 1
-# endif
-#endif
-#define TIMER_RAW_FREQ (F_CPU/TIMER_PRESCALER)
-#define TIMER_RAW TCNT0
-#define TIMER_RAW_TOP (TIMER_RAW_FREQ/1000)
-
-#if (TIMER_RAW_TOP > 255)
-# error "Timer0 can't count 1ms at this clock freq. Use larger prescaler."
-#endif
-
#define TIMER_DIFF(a, b, max) ((a) >= (b) ? (a) - (b) : (max) - (b) + (a))
-#define TIMER_DIFF_RAW(a, b) TIMER_DIFF(a, b, UINT8_MAX)
-#define TIMER_DIFF_MS(a, b) TIMER_DIFF(a, b, UINT16_MAX)
+#define TIMER_DIFF_8(a, b) TIMER_DIFF(a, b, UINT8_MAX)
+#define TIMER_DIFF_16(a, b) TIMER_DIFF(a, b, UINT16_MAX)
+#define TIMER_DIFF_32(a, b) TIMER_DIFF(a, b, UINT32_MAX)
+#define TIMER_DIFF_RAW(a, b) TIMER_DIFF_8(a, b)
#ifdef __cplusplus
extern "C" {
#endif
-extern volatile uint16_t timer_count;
+
+extern volatile uint32_t timer_count;
void timer_init(void);
void timer_clear(void);
uint16_t timer_read(void);
+uint32_t timer_read32(void);
uint16_t timer_elapsed(uint16_t last);
+uint32_t timer_elapsed32(uint32_t last);
+
#ifdef __cplusplus
}
#endif