Files
CuboBmsFirmware/bootloader/Core/Src/modDelay.c
2023-03-29 20:05:43 +03:00

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;
}