timer int LED
This commit is contained in:
38
CHIRP/board/timer.c
Normal file
38
CHIRP/board/timer.c
Normal file
@@ -0,0 +1,38 @@
|
||||
#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 = (80) - 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);
|
||||
}
|
8
CHIRP/board/timer.h
Normal file
8
CHIRP/board/timer.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#ifndef TIMER_H
|
||||
#define TIMER_H
|
||||
|
||||
void timer_config(void);
|
||||
|
||||
|
||||
|
||||
#endif /* TIMER_H */
|
Reference in New Issue
Block a user