24#include "px_stm32cube.h"
26#if PX_SYSCLK_CFG_STMCUBE_HAL_TMR
27#include "stm32l0xx_hal.h"
39#ifdef PX_SYSCLK_CFG_TIMEOUT_PERIOD_TICKS
47void SysTick_Handler(
void)
50 px_sysclk_tick_counter++;
52#if PX_SYSCLK_CFG_STMCUBE_HAL_TMR
53#if (PX_SYSCLK_CFG_TICKS_PER_SEC != 1000)
54 #error "STMCube HAL expects SysTick interval to be 1 ms"
60#ifdef PX_SYSCLK_CFG_TIMEOUT_PERIOD_TICKS
62 if(--px_sysclk_timeout_counter == 0)
68#ifdef PX_SYSCLK_CFG_ON_PERIODIC_TIMEOUT
70 PX_SYSCLK_CFG_ON_PERIODIC_TIMEOUT();
73#ifdef PX_SYSCLK_CFG_TIMEOUT_PERIOD_TICKS
82 uint32_t ticks_per_period;
87 SysTick_Config(ticks_per_period);
89 NVIC_EnableIRQ(SysTick_IRQn);
91#ifdef PX_SYSCLK_CFG_TIMEOUT_PERIOD_TICKS
99 return px_sysclk_tick_counter;
104 px_sysclk_tick_counter = 0;
#define PX_SYSCLK_CFG_TIMEOUT_PERIOD_TICKS
Specify periodic timeout (in sysclk ticks)
#define PX_SYSCLK_CFG_TICKS_PER_SEC
The number of system clock ticks per second.
#define PX_BOARD_SYS_CLK_HZ
System clock frequency in Hz.
#define PX_UDIV_ROUND(dividend, divisor)
Calculate unsigned division with rounding to nearest integer value.
px_sysclk_ticks_t px_sysclk_get_tick_count(void)
Return number of ticks since system clock started.
uint32_t px_sysclk_ticks_t
Size definition of the tick counter.
void px_sysclk_init(void)
Start system clock (one clock tick every 1/PX_SYSCLK_TICKS_PER_SEC seconds)
void px_sysclk_reset_tick_count(void)
Reset tick count.