38 lines
1.3 KiB
C
38 lines
1.3 KiB
C
#include <stdio.h>
|
|
#include <stdint.h>
|
|
#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);
|
|
} |