62 lines
1008 B
C
62 lines
1008 B
C
#include "modDelay.h"
|
|
|
|
static uint32_t hmsCnt = 0;
|
|
|
|
void modDelayInit(void) {
|
|
SystemCoreClockUpdate();
|
|
|
|
//SystemCoreClock / 1000
|
|
if(SysTick_Config(72000)){
|
|
while(1); //Error setting SysTick.
|
|
}
|
|
}
|
|
|
|
uint8_t modDelayTick1ms(uint32_t *last, uint32_t ticks) {
|
|
if((uint32_t)(HAL_GetTick() - *last) >= ticks)
|
|
{
|
|
*last = HAL_GetTick();
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
uint8_t modDelayTick100ms(uint32_t *last, uint32_t ticks) {
|
|
static uint32_t msTicks = 0;
|
|
|
|
if(modDelayTick1ms(&msTicks,99))
|
|
hmsCnt++;
|
|
|
|
if((uint32_t)(hmsCnt - *last) >= ticks)
|
|
{
|
|
*last = hmsCnt;
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
uint8_t modDelayTick1msNoRST(uint32_t *last, uint32_t ticks) {
|
|
if((uint32_t)(HAL_GetTick() - *last) >= ticks)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
uint8_t modDelayTick100msNoRST(uint32_t *last, uint32_t ticks) {
|
|
static uint32_t msTicks = 0;
|
|
|
|
if(modDelayTick1msNoRST(&msTicks,99))
|
|
hmsCnt++;
|
|
|
|
if((uint32_t)(hmsCnt - *last) >= ticks)
|
|
{
|
|
*last = hmsCnt;
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|