36 lines
800 B
C++
36 lines
800 B
C++
#include "stm32g4xx.h"
|
|
|
|
#include "tick.h"
|
|
|
|
static unsigned long Tick = 0;
|
|
|
|
extern "C" void SysTick_Handler()
|
|
{
|
|
Tick++;
|
|
}
|
|
//------------------------------------------------------------------------------
|
|
|
|
void TICK_Init()
|
|
{
|
|
SysTick->LOAD = SystemCoreClock / 1000;
|
|
SysTick->VAL = 0UL;
|
|
SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | SysTick_CTRL_TICKINT_Msk | SysTick_CTRL_ENABLE_Msk;
|
|
|
|
NVIC_SetPriority(SysTick_IRQn, 0);
|
|
}
|
|
//------------------------------------------------------------------------------
|
|
|
|
unsigned long TICK_GetCount() // ms
|
|
{
|
|
return Tick;
|
|
}
|
|
//------------------------------------------------------------------------------
|
|
|
|
|
|
void Tick_Delay(unsigned long ms)
|
|
{
|
|
const unsigned long start = Tick;
|
|
while ((Tick - start) < ms) {
|
|
__NOP();
|
|
}
|
|
} |