stable floor cones
[gbajam22] / src / timer.h
1 #ifndef TIMER_H_
2 #define TIMER_H_
3
4 #include "gbaregs.h"
5
6 #define enable_timer(x) \
7         do { REG_TMCNT_H(x) |= TMCNT_EN; } while(0)
8
9 #define disable_timer(x) \
10         do { REG_TMCNT_H(x) &= ~TMCNT_EN; } while(0)
11
12 volatile unsigned long timer_msec;
13
14 void init_timer(int tm, unsigned long rate_hz, void (*intr)(void));
15
16 void reset_msec_timer(void);
17
18 void delay(unsigned long ms);
19
20 #ifdef __thumb__
21 #define udelay(x)  asm volatile ( \
22         "0: sub %0, %0, #1\n\t" \
23         "bne 0b\n\t" \
24         :: "r"(x) : "cc")
25 #else
26 #define udelay(x)  asm volatile ( \
27         "0: subs %0, %0, #1\n\t" \
28         "bne 0b\n\t" \
29         :: "r"(x) : "cc")
30 #endif
31
32 #endif  /* TIMER_H_ */