68 lines
881 B
C
68 lines
881 B
C
|
|
|
||
|
|
|
||
|
|
#include "drv_tick.h"
|
||
|
|
|
||
|
|
//===============time====================
|
||
|
|
|
||
|
|
#define MAIN_PERIOD_MS (20)
|
||
|
|
|
||
|
|
uint32_t tick_ms = 0;
|
||
|
|
uint32_t tick_us = 0;
|
||
|
|
volatile uint32_t tick_count_200Hz = 0;
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
void tick_init(void)
|
||
|
|
{
|
||
|
|
HAL_TIM_Base_Start_IT(&HTIMER_HANDLE);
|
||
|
|
}
|
||
|
|
|
||
|
|
void tick_count(void)
|
||
|
|
{
|
||
|
|
tick_ms += 1;
|
||
|
|
tick_us += 1000;
|
||
|
|
|
||
|
|
if(!(tick_ms % MAIN_PERIOD_MS))
|
||
|
|
{
|
||
|
|
tick_count_200Hz += 1;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
uint32_t get_msec(void)
|
||
|
|
{
|
||
|
|
return tick_ms;
|
||
|
|
}
|
||
|
|
|
||
|
|
uint32_t get_usec(void)
|
||
|
|
{
|
||
|
|
return tick_us + HTIMER_HANDLE.Instance->CNT;
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
void delay_usec(uint32_t ticks_usec)
|
||
|
|
{
|
||
|
|
uint32_t tick0;
|
||
|
|
uint32_t tick1;
|
||
|
|
uint32_t dtick;
|
||
|
|
|
||
|
|
tick0 = get_usec();
|
||
|
|
do
|
||
|
|
{
|
||
|
|
tick1 = get_usec();
|
||
|
|
if (tick1 >= tick0)
|
||
|
|
{
|
||
|
|
dtick = tick1 - tick0;
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
dtick = (0xFFFFFFFF - tick0) + tick1;
|
||
|
|
}
|
||
|
|
} while (dtick < ticks_usec);
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|