summaryrefslogtreecommitdiff
path: root/src/stm/stm32l.h
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2013-05-01 08:58:17 -0700
committerKeith Packard <keithp@keithp.com>2013-05-07 20:08:01 -0700
commit091582c446319fe4a79154153ece5372b2faec83 (patch)
treea0b16053cc636cac751129db75e3cdc20fe857d1 /src/stm/stm32l.h
parentb7b0ddfddee3f8e21f21d67cd9f522fa50777265 (diff)
altos: Use SYSTICK on STM32L
It's probably more power efficient than using one of the timers, and it's certainly easier to configure. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/stm/stm32l.h')
-rw-r--r--src/stm/stm32l.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/stm/stm32l.h b/src/stm/stm32l.h
index 1d636037..5c0748a6 100644
--- a/src/stm/stm32l.h
+++ b/src/stm/stm32l.h
@@ -811,6 +811,24 @@ extern struct stm_lcd stm_lcd;
#define STM_LCD_CLR_UDDC (3)
#define STM_LCD_CLR_SOFC (1)
+/* The SYSTICK starts at 0xe000e010 */
+
+struct stm_systick {
+ vuint32_t csr;
+ vuint32_t rvr;
+ vuint32_t cvr;
+ vuint32_t calib;
+};
+
+extern struct stm_systick stm_systick;
+
+#define STM_SYSTICK_CSR_ENABLE 0
+#define STM_SYSTICK_CSR_TICKINT 1
+#define STM_SYSTICK_CSR_CLKSOURCE 2
+#define STM_SYSTICK_CSR_CLKSOURCE_HCLK_8 0
+#define STM_SYSTICK_CSR_CLKSOURCE_HCLK 1
+#define STM_SYSTICK_CSR_COUNTFLAG 16
+
/* The NVIC starts at 0xe000e100, so add that to the offsets to find the absolute address */
struct stm_nvic {