summaryrefslogtreecommitdiffstats
path: root/boot/delay.c
diff options
context:
space:
mode:
authorroot <root@lab.ourano.james.local>2021-02-26 12:12:38 +0000
committerroot <root@lab.ourano.james.local>2021-02-26 12:12:38 +0000
commit3d48137c00511b3f2d35511482d1a76f8d06382d (patch)
treed75c88220cc847007869b0795a240c5077948262 /boot/delay.c
parent6d3a824e1cdae6e28146b7de380724b49488f3c2 (diff)
downloadclock-3d48137c00511b3f2d35511482d1a76f8d06382d.tar.gz
clock-3d48137c00511b3f2d35511482d1a76f8d06382d.tar.bz2
clock-3d48137c00511b3f2d35511482d1a76f8d06382d.zip
works
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();
+}
+
+