summaryrefslogtreecommitdiff
path: root/hal/timer.h
diff options
context:
space:
mode:
Diffstat (limited to 'hal/timer.h')
-rw-r--r--hal/timer.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/hal/timer.h b/hal/timer.h
new file mode 100644
index 0000000..f9305de
--- /dev/null
+++ b/hal/timer.h
@@ -0,0 +1,40 @@
+#ifndef TIMER_H
+#define TIMER_H
+
+struct TIM_t {
+ volatile uint32_t CR1;
+ volatile uint32_t CR2;
+ volatile uint32_t SMCR;
+ volatile uint32_t DIER;
+ volatile uint32_t SR;
+ volatile uint32_t EGR;
+ volatile uint32_t CCMR1;
+ volatile uint32_t CCMR2;
+ volatile uint32_t CCER;
+ volatile uint32_t CNT;
+ volatile uint32_t PSC;
+ volatile uint32_t ARR;
+ volatile uint32_t RCR;
+ volatile uint32_t CCR1;
+ volatile uint32_t CCR2;
+ volatile uint32_t CCR3;
+ volatile uint32_t CCR4;
+ volatile uint32_t BDTR;
+ volatile uint32_t DCR;
+ volatile uint32_t DMAR;
+};
+
+#if defined(STM32F1)
+static TIM_t& TIM1 = *(TIM_t*)0x40012c00;
+static TIM_t& TIM2 = *(TIM_t*)0x40000000;
+static TIM_t& TIM3 = *(TIM_t*)0x40000400;
+static TIM_t& TIM4 = *(TIM_t*)0x40000800;
+static TIM_t& TIM5 = *(TIM_t*)0x40000c00;
+static TIM_t& TIM6 = *(TIM_t*)0x40001000;
+static TIM_t& TIM7 = *(TIM_t*)0x40001400;
+static TIM_t& TIM8 = *(TIM_t*)0x40013400;
+#elif defined(STM32F4)
+static TIM_t& TIM2 = *(TIM_t*)0x40000000;
+#endif
+
+#endif