generated from hulk/gd32e23x_template_cmake_vscode
revert 3ad18bf1f1
revert Merge pull request 'dev' (#1) from dev into main Reviewed-on: #1
This commit is contained in:
@@ -38,7 +38,8 @@ OF SUCH DAMAGE.
|
||||
#include "uart_ring_buffer.h"
|
||||
#include "led.h"
|
||||
#include "ultrasonic_analog.h"
|
||||
#include "board_config.h"
|
||||
|
||||
extern uint16_t g_capture_value;
|
||||
|
||||
/*!
|
||||
\brief this function handles NMI exception
|
||||
@@ -103,21 +104,39 @@ void SysTick_Handler(void) {
|
||||
delay_decrement();
|
||||
}
|
||||
|
||||
void TIMER16_IRQHandler(void)
|
||||
{
|
||||
// CH0比较中断 (ULTRASONIC_TX_RINGDOWN_RELOAD)
|
||||
if(timer_interrupt_flag_get(TIMER16, TIMER_INT_FLAG_CH0) != RESET) {
|
||||
timer_interrupt_flag_clear(TIMER16, TIMER_INT_FLAG_CH0);
|
||||
exti_interrupt_enable(US_RX_GPIO_EXTI);
|
||||
// /**
|
||||
// * @brief This function handles TIMER15 interrupt request.
|
||||
// * @param[in] none
|
||||
// * @param[out] none
|
||||
// * @retval None
|
||||
// */
|
||||
// void TIMER15_IRQHandler(void) {
|
||||
// if (timer_interrupt_flag_get(US_TX_DELAY_TIMER, TIMER_INT_FLAG_UP) == SET)
|
||||
// {
|
||||
// timer_interrupt_flag_clear(US_TX_DELAY_TIMER, TIMER_INT_FLAG_UP);
|
||||
// exti_interrupt_enable(US_RX_GPIO_EXTI); // turn on hardware external input interrupt
|
||||
// timer_counter_value_config(US_ECHO_TIMER, 0);
|
||||
// timer_enable(US_ECHO_TIMER); // turn on timer to calculate the first ultrasonic echo time
|
||||
// timer_disable(US_TX_DELAY_TIMER);
|
||||
// }
|
||||
// }
|
||||
|
||||
void TIMER15_IRQHandler(void) {
|
||||
if (timer_interrupt_flag_get(TIMER15, TIMER_INT_FLAG_CH1)) {
|
||||
timer_interrupt_flag_clear(TIMER15, TIMER_INT_FLAG_CH1);
|
||||
// g_ultrasonic_measure_done = true; // TODO 测距命令发送回报标识位,最终不应在这里
|
||||
gpio_bit_set(GPIOA, GPIO_PIN_0); // TODO waiting for delete
|
||||
}
|
||||
|
||||
if (timer_interrupt_flag_get(TIMER15, TIMER_INT_FLAG_UP)) {
|
||||
timer_interrupt_flag_clear(TIMER15, TIMER_INT_FLAG_UP);
|
||||
timer_disable(TIMER15);
|
||||
}
|
||||
|
||||
// UP更新中断 (ULTRASONIC_MAX_TOF_RELOAD)
|
||||
if(timer_interrupt_flag_get(TIMER16, TIMER_INT_FLAG_UP) != RESET) {
|
||||
timer_interrupt_flag_clear(TIMER16, TIMER_INT_FLAG_UP);
|
||||
timer_disable(US_ECHO_TIMER);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @brief This function handles external lines 0 to 1 interrupt request
|
||||
* @param[in] none
|
||||
@@ -128,12 +147,14 @@ void EXTI0_1_IRQHandler(void) {
|
||||
if (exti_interrupt_flag_get(US_RX_GPIO_EXTI) == SET)
|
||||
{
|
||||
exti_interrupt_flag_clear(US_RX_GPIO_EXTI);
|
||||
g_capture_value = timer_channel_capture_value_register_read(US_ECHO_TIMER, US_ECHO_CH);
|
||||
|
||||
timer_disable(US_ECHO_TIMER);
|
||||
g_ultrasonic_measure_done = true; // 超声转换完成,置位flag后有命令处理部分回包
|
||||
exti_interrupt_disable(US_RX_GPIO_EXTI);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* PWM周期计数器 - 使用ULTRASONIC_TX_CYCLES宏 */
|
||||
volatile uint8_t pwm_cycle_count = 0;
|
||||
|
||||
@@ -146,21 +167,15 @@ void TIMER13_IRQHandler(void)
|
||||
if(pwm_cycle_count >= (ULTRASONIC_TX_CYCLES)) {
|
||||
timer_disable(TIMER13);
|
||||
pwm_cycle_count = 0;
|
||||
g_ultrasonic_measure_done = true; // TODO 测距命令发送回报标识位,最终不应在这里
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void USART0_IRQHandler(void) {
|
||||
// 检查当前配置是否使用USART0,并且函数指针不为空
|
||||
if(g_usart_config.usart_periph == USART0 && g_usart_config.irq_handler != 0) {
|
||||
g_usart_config.irq_handler(); // 通过函数指针调用对应的处理函数
|
||||
}
|
||||
}
|
||||
|
||||
void USART1_IRQHandler(void) {
|
||||
// 检查当前配置是否使用USART1,并且函数指针不为空
|
||||
if(g_usart_config.usart_periph == USART1 && g_usart_config.irq_handler != 0) {
|
||||
g_usart_config.irq_handler(); // 通过函数指针调用对应的处理函数
|
||||
if (RESET != usart_interrupt_flag_get(USART0, USART_INT_FLAG_RBNE)) {
|
||||
uint8_t data = usart_data_receive(USART0);
|
||||
(void)uart_ring_buffer_put(data); // 缓冲满时丢弃,返回值可用于统计
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user