void delay_ms(uint32_t ms)
{
uint32_t start_count = gs_count;
while((gs_count - start_count) < ms);
}
void delay_us(uint32_t us)
{
uint32_t start_counter = delay_counter;
while ((delay_counter - start_counter) < us / 1000);
}
void timer2_init(void)
{
timer_parameter_struct timer_init_struct;
rcu_periph_clock_enable(RCU_TIMER2);
timer_deinit(TIMER2);
timer_init_struct.prescaler = 12000-1;
timer_init_struct.period = 10-1;
timer_init_struct.alignedmode = TIMER_COUNTER_EDGE;
timer_init_struct.counterdirection = TIMER_COUNTER_UP;
timer_init_struct.clockdivision = TIMER_CKDIV_DIV1;
timer_init_struct.repetitioncounter = 0;
timer_init(TIMER2, &timer_init_struct);
nvic_irq_enable(TIMER2_IRQn, 1, 1);
timer_interrupt_enable(TIMER2, TIMER_INT_UP);
timer_enable(TIMER2);
}