summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/nitro/OS_timer_shared.h32
-rw-r--r--include/nitro/registers_shared.h11
2 files changed, 43 insertions, 0 deletions
diff --git a/include/nitro/OS_timer_shared.h b/include/nitro/OS_timer_shared.h
new file mode 100644
index 00000000..db20ee08
--- /dev/null
+++ b/include/nitro/OS_timer_shared.h
@@ -0,0 +1,32 @@
+#ifndef POKEDIAMOND_OS_TIMER_SHARED_H
+#define POKEDIAMOND_OS_TIMER_SHARED_H
+
+#include "nitro/consts_shared.h"
+
+typedef enum
+{
+ OS_TIMER_PRESCALER_1 = (0UL << REG_OS_TM0CNT_H_PS_SHIFT),
+ OS_TIMER_PRESCALER_64 = (1UL << REG_OS_TM0CNT_H_PS_SHIFT),
+ OS_TIMER_PRESCALER_256 = (2UL << REG_OS_TM0CNT_H_PS_SHIFT),
+ OS_TIMER_PRESCALER_1024 = (3UL << REG_OS_TM0CNT_H_PS_SHIFT)
+} OSTimerPrescaler;
+
+typedef enum
+{
+ OS_TIMER_0 = 0,
+ OS_TIMER_1 = 1,
+ OS_TIMER_2 = 2,
+ OS_TIMER_3 = 3
+} OSTimer;
+
+static inline void OS_SetTimerCount(OSTimer id, u16 count)
+{
+ *((REGType16 *)((u32)&reg_OS_TM0CNT_L + id * 4)) = count;
+}
+
+static inline void OS_SetTimerControl(OSTimer id, u16 control)
+{
+ *((REGType16 *)((u32)&reg_OS_TM0CNT_H + id * 4)) = control;
+}
+
+#endif
diff --git a/include/nitro/registers_shared.h b/include/nitro/registers_shared.h
index 60152ab0..4962e608 100644
--- a/include/nitro/registers_shared.h
+++ b/include/nitro/registers_shared.h
@@ -10,8 +10,19 @@
#include "nitro/types.h"
+#define reg_OS_TM0CNT_L (*(REGType16v *)0x4000100)
+#define reg_OS_TM0CNT_H (*(REGType16v *)0x4000102)
+#define reg_OS_TM1CNT_L (*(REGType16v *)0x4000104)
+#define reg_OS_TM1CNT_H (*(REGType16v *)0x4000106)
+#define reg_OS_TM2CNT_L (*(REGType16v *)0x4000108)
+#define reg_OS_TM2CNT_H (*(REGType16v *)0x400010a)
+#define reg_OS_TM3CNT_L (*(REGType16v *)0x400010c)
+#define reg_OS_TM3CNT_H (*(REGType16v *)0x400010e)
+
#define reg_OS_IME (*(REGType16v *)0x4000208)
#define reg_OS_IE (*(REGType32v *)0x4000210)
#define reg_OS_IF (*(REGType32v *)0x4000214)
+#define REG_OS_TM0CNT_H_PS_SHIFT 0
+
#endif //POKEDIAMOND_REGISTERS_SHARED_H