summaryrefslogtreecommitdiffstats
path: root/boot/delay.c
diff options
context:
space:
mode:
Diffstat (limited to 'boot/delay.c')
-rw-r--r--boot/delay.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/boot/delay.c b/boot/delay.c
new file mode 100644
index 0000000..132081a
--- /dev/null
+++ b/boot/delay.c
@@ -0,0 +1,42 @@
+#include "project.h"
+
+
+
+static volatile uint32_t delay_ms_count;
+
+void
+sys_tick_handler (void)
+{
+ if (delay_ms_count)
+ delay_ms_count--;
+}
+void
+ticker_on (void)
+{
+ /*168MHz 1ms */
+ systick_set_reload (48000);
+ systick_set_clocksource (STK_CSR_CLKSOURCE_AHB);
+ systick_counter_enable();
+ /* this done last */
+ systick_interrupt_enable();
+}
+
+void
+ticker_off (void)
+{
+ systick_interrupt_disable();
+ systick_counter_disable();
+}
+
+
+void
+delay_ms (uint32_t d)
+{
+ ticker_on();
+ delay_ms_count = d;
+
+ while (delay_ms_count);
+ ticker_off();
+}
+
+