diff options
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(); +} + + |