#ifndef TIMER_H_
#define TIMER_H_
-typedef void TimerCallback(void);
+#include <avr/interrupt.h>
-void timer_init(uint16_t, uint8_t);
-void timer_set_callback(TimerCallback *);
+#define TIMER_SET_CALLBACK(n, f) \
+ ISR(TIMER ## n ## _COMPA_vect) \
+ { \
+ f(); \
+ }
+
+void timer_start_hz(uint8_t, uint32_t, uint8_t);
+void timer_start_us(uint8_t, uint32_t);
+void timer_stop(uint8_t);
#endif