diff options
author | root <root@lab.ourano.james.local> | 2021-02-26 12:12:38 +0000 |
---|---|---|
committer | root <root@lab.ourano.james.local> | 2021-02-26 12:12:38 +0000 |
commit | 3d48137c00511b3f2d35511482d1a76f8d06382d (patch) | |
tree | d75c88220cc847007869b0795a240c5077948262 /boot/delay.c | |
parent | 6d3a824e1cdae6e28146b7de380724b49488f3c2 (diff) | |
download | clock-3d48137c00511b3f2d35511482d1a76f8d06382d.tar.gz clock-3d48137c00511b3f2d35511482d1a76f8d06382d.tar.bz2 clock-3d48137c00511b3f2d35511482d1a76f8d06382d.zip |
works
Diffstat (limited to 'boot/delay.c')
-rw-r--r-- | boot/delay.c | 42 |
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(); +} + + |