#include #include #include "gd32e23x.h" #include "timer.h" #include "gd32e23x.h" #include "chirp_board_config.h" #include "board_init.h" void timer_config(void) { timer_oc_parameter_struct timer_ocinitpara; timer_parameter_struct timer_initpara; rcu_periph_clock_enable(RCU_TIMER2); timer_deinit(TIMER2); timer_struct_para_init(&timer_initpara); timer_initpara.prescaler = (8) - 1; timer_initpara.alignedmode = TIMER_COUNTER_EDGE; timer_initpara.counterdirection = TIMER_COUNTER_UP; timer_initpara.period = 19999; timer_initpara.clockdivision = TIMER_CKDIV_DIV1; timer_initpara.repetitioncounter = 0; timer_init(TIMER2, &timer_initpara); timer_initpara.period = 9999; timer_init(TIMER2, &timer_initpara); timer_channel_output_struct_para_init(&timer_ocinitpara); timer_ocinitpara.outputstate = TIMER_CCX_ENABLE; timer_ocinitpara.ocpolarity = TIMER_OC_POLARITY_HIGH; timer_ocinitpara.ocidlestate = TIMER_OC_IDLE_STATE_LOW; timer_channel_output_config(TIMER2, TIMER_CH_0, &timer_ocinitpara); timer_auto_reload_shadow_enable(TIMER2); timer_interrupt_enable(TIMER2, TIMER_INT_CH0); timer_enable(TIMER2); nvic_irq_enable(TIMER2_IRQn, 2); }