delay_systick.h
void SysTick_Handler (void);
void Delay_Ms (uint32_t millis);
void Delay_Us (uint32_t micros);
delay_systick.c
#include <delay_systick.h>
static volatile uint32_t systick_counter = 0;
void SysTick_Handler (void){
if (systick_counter) systick_counter--;
}
void Delay_Ms (uint32_t millis){
systick_counter = millis;
SysTick_Config(CPU_CLK/1000);
while(systick_counter);
}
void Delay_Us (uint32_t micros){
systick_counter = micros;
SysTick_Config(CPU_CLK/1000000);
while(systick_counter);
}