#include "shorttimer.h" #include "stm32h7xx_hal.h" #include "stm32h7xx_hal_tim.h" #include static TIM_HandleTypeDef *htim; static uint32_t ticks; void shorttimer_init(TIM_HandleTypeDef *handle) { htim = handle; ticks = 0; HAL_TIM_Base_Start_IT(htim); } uint32_t shorttimer_gettick(void) { return ticks; } void shorttimer_sleep(uint32_t microseconds) { volatile uint32_t start = shorttimer_gettick(); // Add another tick to guarantee a minimum wait if (microseconds < UINT32_MAX) { microseconds++; } while (shorttimer_gettick() - start < microseconds) { } } void shorttimer_callback() { ticks++; }