timer int LED

This commit is contained in:
wanghao 2024-08-09 16:34:11 +08:00
parent 673db2d79f
commit 27a1f5624e
6 changed files with 90 additions and 9 deletions

38
CHIRP/board/timer.c Normal file
View 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
View File

@ -0,0 +1,8 @@
#ifndef TIMER_H
#define TIMER_H
void timer_config(void);
#endif /* TIMER_H */

View File

@ -648,6 +648,18 @@
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>30</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\CHIRP\board\timer.c</PathWithFileName>
<FilenameWithoutPath>timer.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
@ -658,7 +670,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>30</FileNumber>
<FileNumber>31</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -670,7 +682,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>31</FileNumber>
<FileNumber>32</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -682,7 +694,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>32</FileNumber>
<FileNumber>33</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -694,7 +706,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>33</FileNumber>
<FileNumber>34</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -706,7 +718,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>34</FileNumber>
<FileNumber>35</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -718,7 +730,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>35</FileNumber>
<FileNumber>36</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -730,7 +742,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>36</FileNumber>
<FileNumber>37</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -750,7 +762,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>37</FileNumber>
<FileNumber>38</FileNumber>
<FileType>1</FileType>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>

View File

@ -553,6 +553,11 @@
<FileType>1</FileType>
<FilePath>..\..\CHIRP\board\i2c.c</FilePath>
</File>
<File>
<FileName>timer.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\CHIRP\board\timer.c</FilePath>
</File>
</Files>
</Group>
<Group>

View File

@ -35,6 +35,7 @@ OF SUCH DAMAGE.
#include "gd32e23x_it.h"
#include "main.h"
#include "systick.h"
#include "chirp_bsp.h"
/*!
\brief this function handles NMI exception
@ -104,4 +105,18 @@ void EXTI4_15_IRQHandler(void){
exti_interrupt_flag_clear(EXTI_7);
}
}
/**
* @brief This function handles TIMER2 interrupt request.
* @param None
* @retval None
*/
void TIMER2_IRQHandler(void)
{
if (SET == timer_interrupt_flag_get(TIMER2, TIMER_INT_FLAG_CH0))
{
chbsp_led_toggle(0);
timer_interrupt_flag_clear(TIMER2, TIMER_INT_FLAG_CH0);
}
}

View File

@ -37,6 +37,7 @@ OF SUCH DAMAGE.
#include <stdio.h>
#include "main.h"
// #include "gd32e230c_eval.h"
#include "timer.h"
#include "board_init.h"
#include "chirp_board_config.h"
#include "chirp_bsp.h"
@ -277,10 +278,12 @@ int main(void)
}
printf("Starting measurements\n");
timer_config();
while (1)
{
handle_data_ready(grp_ptr);
chbsp_led_toggle(dev_num);
// chbsp_led_toggle(dev_num);
delay_ms(MEASUREMENT_INTERVAL_MS);
}
}