Files
QD4C-firmware/app/isr.c

452 lines
16 KiB
C
Raw Permalink Normal View History

2023-12-11 21:45:06 +08:00
/*********************************************************************************************************************
2023-12-13 21:54:20 +08:00
* CH32V307VCT6 Opensourec Library <EFBFBD><EFBFBD><EFBFBD><EFBFBD>CH32V307VCT6 <EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڹٷ<EFBFBD> SDK <EFBFBD>ӿڵĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>
* Copyright (c) 2022 SEEKFREE <EFBFBD><EFBFBD><EFBFBD>ɿƼ<EFBFBD>
*
* <EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD> CH32V307VCT6 <EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2023-12-13 21:54:20 +08:00
*
* CH32V307VCT6 <EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GPL<EFBFBD><EFBFBD>GNU General Public License<EFBFBD><EFBFBD><EFBFBD><EFBFBD> GNU ͨ<EFBFBD>ù<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD> GPL <EFBFBD>ĵ<EFBFBD> 3 <EFBFBD><EFBFBD><EFBFBD> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD>
2023-12-13 21:54:20 +08:00
*
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κεı<EFBFBD>֤
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD><EFBFBD>ʺ<EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD><EFBFBD>;<EFBFBD>ı<EFBFBD>֤
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD> GPL
*
* <EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬʱ<EFBFBD>յ<EFBFBD>һ<EFBFBD><EFBFBD> GPL <EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><https://www.gnu.org/licenses/>
*
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD> GPL3.0 <EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤Э<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>İ
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӣ<EFBFBD>İ<EFBFBD><EFBFBD><EFBFBD> libraries/doc <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD> GPL3_permission_statement.txt <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> libraries <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD> LICENSE <EFBFBD>ļ<EFBFBD>
* <EFBFBD><EFBFBD>ӭ<EFBFBD><EFBFBD>λʹ<EFBFBD>ò<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<EFBFBD><EFBFBD>İ<EFBFBD>Ȩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> isr
* <EFBFBD><EFBFBD>˾<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ɶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>޹<EFBFBD>˾
* <EFBFBD><EFBFBD><EFBFBD>Ϣ <EFBFBD> libraries/doc <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> version <EFBFBD>ļ<EFBFBD> <EFBFBD>˵<EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MounRiver Studio V1.8.1
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ̨ CH32V307VCT6
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
*
* <EFBFBD>޸ļ<EFBFBD>¼
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ע
* 2022-09-15 <EFBFBD><EFBFBD> W first version
2023-12-13 21:54:20 +08:00
********************************************************************************************************************/
2023-12-11 21:45:06 +08:00
#include "zf_common_headfile.h"
2024-02-25 11:49:10 +08:00
#include "by_imu.h"
2024-01-08 22:08:43 +08:00
#include "by_buzzer.h"
2024-02-25 11:49:10 +08:00
#include "by_rt_button.h"
#include "by_frame.h"
2024-02-25 11:49:10 +08:00
2024-01-16 20:03:21 +08:00
#include "jj_motion.h"
#include "jj_blueteeth.h"
2023-12-13 21:54:20 +08:00
void NMI_Handler(void) __attribute__((interrupt()));
2023-12-11 21:45:06 +08:00
void HardFault_Handler(void) __attribute__((interrupt()));
void USART1_IRQHandler(void) __attribute__((interrupt()));
void USART2_IRQHandler(void) __attribute__((interrupt()));
void USART3_IRQHandler(void) __attribute__((interrupt()));
2023-12-13 21:54:20 +08:00
void UART4_IRQHandler(void) __attribute__((interrupt()));
void UART5_IRQHandler(void) __attribute__((interrupt()));
void UART6_IRQHandler(void) __attribute__((interrupt()));
void UART7_IRQHandler(void) __attribute__((interrupt()));
void UART8_IRQHandler(void) __attribute__((interrupt()));
void DVP_IRQHandler(void) __attribute__((interrupt()));
// void TIM1_BRK_IRQHandler (void) __attribute__((interrupt()));
void TIM1_UP_IRQHandler(void) __attribute__((interrupt()));
// void TIM1_TRG_COM_IRQHandler (void) __attribute__((interrupt()));
// void TIM1_CC_IRQHandler (void) __attribute__((interrupt()));
void TIM2_IRQHandler(void) __attribute__((interrupt()));
void TIM3_IRQHandler(void) __attribute__((interrupt()));
void TIM4_IRQHandler(void) __attribute__((interrupt()));
void TIM5_IRQHandler(void) __attribute__((interrupt()));
void TIM6_IRQHandler(void) __attribute__((interrupt()));
void TIM7_IRQHandler(void) __attribute__((interrupt()));
// void TIM8_BRK_IRQHandler (void) __attribute__((interrupt()));
void TIM8_UP_IRQHandler(void) __attribute__((interrupt()));
// void TIM8_TRG_COM_IRQHandler (void) __attribute__((interrupt()));
// void TIM8_CC_IRQHandler (void) __attribute__((interrupt()));
// void TIM9_BRK_IRQHandler (void) __attribute__((interrupt()));
void TIM9_UP_IRQHandler(void) __attribute__((interrupt()));
// void TIM9_TRG_COM_IRQHandler (void) __attribute__((interrupt()));
// void TIM9_CC_IRQHandler (void) __attribute__((interrupt()));
// void TIM10_BRK_IRQHandler (void) __attribute__((interrupt()));
void TIM10_UP_IRQHandler(void) __attribute__((interrupt()));
// void TIM10_TRG_COM_IRQHandler (void) __attribute__((interrupt()));
// void TIM10_CC_IRQHandler (void) __attribute__((interrupt()));
2023-12-11 21:45:06 +08:00
void EXTI0_IRQHandler(void) __attribute__((interrupt()));
void EXTI1_IRQHandler(void) __attribute__((interrupt()));
void EXTI2_IRQHandler(void) __attribute__((interrupt()));
void EXTI3_IRQHandler(void) __attribute__((interrupt()));
void EXTI4_IRQHandler(void) __attribute__((interrupt()));
void EXTI9_5_IRQHandler(void) __attribute__((interrupt()));
void EXTI15_10_IRQHandler(void) __attribute__((interrupt()));
void USART1_IRQHandler(void)
{
2023-12-13 21:54:20 +08:00
if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) {
2024-03-02 16:00:29 +08:00
2023-12-11 21:45:06 +08:00
USART_ClearITPendingBit(USART1, USART_IT_RXNE);
}
}
void USART2_IRQHandler(void)
{
2023-12-13 21:54:20 +08:00
if (USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) {
2023-12-11 21:45:06 +08:00
USART_ClearITPendingBit(USART2, USART_IT_RXNE);
}
}
void USART3_IRQHandler(void)
{
2023-12-13 21:54:20 +08:00
if (USART_GetITStatus(USART3, USART_IT_RXNE) != RESET) {
2024-03-02 16:00:29 +08:00
USART_ClearITPendingBit(USART3, USART_IT_RXNE);
2023-12-11 21:45:06 +08:00
}
}
2023-12-13 21:54:20 +08:00
void UART4_IRQHandler(void)
2023-12-11 21:45:06 +08:00
{
2023-12-13 21:54:20 +08:00
if (USART_GetITStatus(UART4, USART_IT_RXNE) != RESET) {
2024-03-05 16:34:56 +08:00
by_frame_parse_uart_handle(USART_ReceiveData(UART4));
2023-12-11 21:45:06 +08:00
USART_ClearITPendingBit(UART4, USART_IT_RXNE);
}
}
2023-12-13 21:54:20 +08:00
void UART5_IRQHandler(void)
2023-12-11 21:45:06 +08:00
{
2023-12-13 21:54:20 +08:00
if (USART_GetITStatus(UART5, USART_IT_RXNE) != RESET) {
2023-12-11 21:45:06 +08:00
camera_uart_handler();
USART_ClearITPendingBit(UART5, USART_IT_RXNE);
}
}
2023-12-13 21:54:20 +08:00
void UART6_IRQHandler(void)
2023-12-11 21:45:06 +08:00
{
2023-12-13 21:54:20 +08:00
if (USART_GetITStatus(UART6, USART_IT_RXNE) != RESET) {
2023-12-11 21:45:06 +08:00
USART_ClearITPendingBit(UART6, USART_IT_RXNE);
}
}
2023-12-13 21:54:20 +08:00
void UART7_IRQHandler(void)
2023-12-11 21:45:06 +08:00
{
2023-12-13 21:54:20 +08:00
if (USART_GetITStatus(UART7, USART_IT_RXNE) != RESET) {
2023-12-11 21:45:06 +08:00
wireless_module_uart_handler();
2024-06-28 18:23:53 +08:00
uart_query_byte(UART_7, &bt_buffer);
bt_rx_flag = true;
2023-12-11 21:45:06 +08:00
USART_ClearITPendingBit(UART7, USART_IT_RXNE);
}
}
2023-12-13 21:54:20 +08:00
void UART8_IRQHandler(void)
2023-12-11 21:45:06 +08:00
{
2023-12-13 21:54:20 +08:00
if (USART_GetITStatus(UART8, USART_IT_RXNE) != RESET) {
2024-06-28 18:23:53 +08:00
2023-12-11 21:45:06 +08:00
USART_ClearITPendingBit(UART8, USART_IT_RXNE);
}
}
void DVP_IRQHandler(void)
{
2023-12-13 21:54:20 +08:00
if (DVP->IFR & RB_DVP_IF_FRM_DONE) {
2023-12-11 21:45:06 +08:00
camera_dvp_handler();
DVP->IFR &= ~RB_DVP_IF_FRM_DONE;
}
}
void EXTI0_IRQHandler(void)
{
2023-12-13 21:54:20 +08:00
if (SET == EXTI_GetITStatus(EXTI_Line0)) {
2024-04-16 09:58:51 +08:00
if (rotate_button == rotate_button_none) {
if (SET == gpio_get_level(B9)) {
rotate_button = rotate_button_backward;
queue_add_element(BY_BACKWARD);
} else {
rotate_button = rotate_button_forward;
queue_add_element(BY_FORWARD);
}
}
2023-12-11 21:45:06 +08:00
EXTI_ClearITPendingBit(EXTI_Line0);
}
}
void EXTI1_IRQHandler(void)
{
2023-12-13 21:54:20 +08:00
if (SET == EXTI_GetITStatus(EXTI_Line1)) {
2024-04-16 09:58:51 +08:00
static uint64_t time_via = 0;
system_delay_ms(10);
if (RESET == gpio_get_level(E1)) {
time_via = system_get_tick();
} else if (SET == gpio_get_level(E1)) {
time_via = system_get_tick() - time_via;
if (time_via > LONG_PRESS_THRESHOLD_TICK) {
rotate_button = rotate_button_press_long;
queue_add_element(BY_PRESS_LONG);
} else {
rotate_button = rotate_button_press_short;
queue_add_element(BY_PRESS_SHORT);
}
time_via = 0;
}
2023-12-11 21:45:06 +08:00
EXTI_ClearITPendingBit(EXTI_Line1);
}
}
void EXTI2_IRQHandler(void)
{
2023-12-13 21:54:20 +08:00
if (SET == EXTI_GetITStatus(EXTI_Line2)) {
2023-12-11 21:45:06 +08:00
EXTI_ClearITPendingBit(EXTI_Line2);
}
}
void EXTI3_IRQHandler(void)
{
2023-12-13 21:54:20 +08:00
if (SET == EXTI_GetITStatus(EXTI_Line3)) {
2023-12-11 21:45:06 +08:00
EXTI_ClearITPendingBit(EXTI_Line3);
}
}
void EXTI4_IRQHandler(void)
{
2023-12-13 21:54:20 +08:00
if (SET == EXTI_GetITStatus(EXTI_Line4)) {
2023-12-11 21:45:06 +08:00
EXTI_ClearITPendingBit(EXTI_Line4);
}
}
void EXTI9_5_IRQHandler(void)
{
2023-12-13 21:54:20 +08:00
if (SET == EXTI_GetITStatus(EXTI_Line5)) {
2023-12-11 21:45:06 +08:00
EXTI_ClearITPendingBit(EXTI_Line5);
}
2023-12-13 21:54:20 +08:00
if (SET == EXTI_GetITStatus(EXTI_Line6)) {
2023-12-11 21:45:06 +08:00
EXTI_ClearITPendingBit(EXTI_Line6);
}
2023-12-13 21:54:20 +08:00
if (SET == EXTI_GetITStatus(EXTI_Line7)) {
2023-12-11 21:45:06 +08:00
EXTI_ClearITPendingBit(EXTI_Line7);
}
2023-12-13 21:54:20 +08:00
if (SET == EXTI_GetITStatus(EXTI_Line8)) {
2023-12-11 21:45:06 +08:00
EXTI_ClearITPendingBit(EXTI_Line8);
}
2023-12-13 21:54:20 +08:00
if (SET == EXTI_GetITStatus(EXTI_Line9)) {
2023-12-22 22:39:59 +08:00
EXTI_ClearITPendingBit(EXTI_Line9);
2023-12-11 21:45:06 +08:00
}
}
void EXTI15_10_IRQHandler(void)
{
2023-12-13 21:54:20 +08:00
if (SET == EXTI_GetITStatus(EXTI_Line10)) {
2023-12-11 21:45:06 +08:00
// <20>˴<EFBFBD><CBB4><EFBFBD>д<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD> (A10/B10..E10) <20><><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>
// <20>˴<EFBFBD><CBB4><EFBFBD>д<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD> (A10/B10..E10) <20><><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>
EXTI_ClearITPendingBit(EXTI_Line10);
}
2023-12-13 21:54:20 +08:00
if (SET == EXTI_GetITStatus(EXTI_Line11)) {
2024-04-16 09:58:51 +08:00
EXTI_ClearITPendingBit(EXTI_Line11);
}
if (SET == EXTI_GetITStatus(EXTI_Line12)) {
EXTI_ClearITPendingBit(EXTI_Line12);
}
if (SET == EXTI_GetITStatus(EXTI_Line13)) {
// -----------------* ToF INT <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD> Ԥ<><D4A4><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *-----------------
tof_module_exti_handler();
// -----------------* ToF INT <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD> Ԥ<><D4A4><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *-----------------
// <20>˴<EFBFBD><CBB4><EFBFBD>д<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD> (A13/B13..E13) <20><><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>
2023-12-11 21:45:06 +08:00
2024-04-16 09:58:51 +08:00
// <20>˴<EFBFBD><CBB4><EFBFBD>д<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD> (A13/B13..E13) <20><><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>
2023-12-11 21:45:06 +08:00
2024-04-16 09:58:51 +08:00
EXTI_ClearITPendingBit(EXTI_Line13);
}
if (SET == EXTI_GetITStatus(EXTI_Line14)) {
// -----------------* DM1XA <20><><EFBFBD>ź<EFBFBD> Ԥ<><D4A4><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *-----------------
dm1xa_light_callback();
// -----------------* DM1XA <20><><EFBFBD>ź<EFBFBD> Ԥ<><D4A4><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *-----------------
EXTI_ClearITPendingBit(EXTI_Line14);
}
if (SET == EXTI_GetITStatus(EXTI_Line15)) {
// -----------------* DM1XA <20><>/<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD> Ԥ<><D4A4><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *-----------------
dm1xa_sound_callback();
// -----------------* DM1XA <20><>/<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD> Ԥ<><D4A4><EFBFBD>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *-----------------
EXTI_ClearITPendingBit(EXTI_Line15);
2023-12-11 21:45:06 +08:00
}
}
void TIM1_UP_IRQHandler(void)
{
2023-12-13 21:54:20 +08:00
if (TIM_GetITStatus(TIM1, TIM_IT_Update) != RESET) {
2024-07-05 03:29:56 +08:00
2024-04-16 10:54:44 +08:00
TIM_ClearITPendingBit(TIM1, TIM_IT_Update);
2023-12-11 21:45:06 +08:00
}
}
void TIM2_IRQHandler(void)
{
2023-12-13 21:54:20 +08:00
if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) {
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
2023-12-11 21:45:06 +08:00
}
}
void TIM3_IRQHandler(void)
{
2023-12-13 21:54:20 +08:00
if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) {
TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
2023-12-11 21:45:06 +08:00
}
}
void TIM4_IRQHandler(void)
{
2023-12-13 21:54:20 +08:00
if (TIM_GetITStatus(TIM4, TIM_IT_Update) != RESET) {
TIM_ClearITPendingBit(TIM4, TIM_IT_Update);
2023-12-11 21:45:06 +08:00
}
}
void TIM5_IRQHandler(void)
{
2023-12-13 21:54:20 +08:00
if (TIM_GetITStatus(TIM5, TIM_IT_Update) != RESET) {
TIM_ClearITPendingBit(TIM5, TIM_IT_Update);
2023-12-11 21:45:06 +08:00
}
}
void TIM6_IRQHandler(void)
{
2023-12-13 21:54:20 +08:00
if (TIM_GetITStatus(TIM6, TIM_IT_Update) != RESET) {
2024-07-05 03:29:56 +08:00
by_buzzer_run();
sport_motion();
2023-12-13 21:54:20 +08:00
TIM_ClearITPendingBit(TIM6, TIM_IT_Update);
2023-12-11 21:45:06 +08:00
}
}
void TIM7_IRQHandler(void)
{
2023-12-13 21:54:20 +08:00
if (TIM_GetITStatus(TIM7, TIM_IT_Update) != RESET) {
TIM_ClearITPendingBit(TIM7, TIM_IT_Update);
2023-12-11 21:45:06 +08:00
}
}
void TIM8_UP_IRQHandler(void)
{
2023-12-13 21:54:20 +08:00
if (TIM_GetITStatus(TIM8, TIM_IT_Update) != RESET) {
2023-12-11 21:45:06 +08:00
TIM_ClearITPendingBit(TIM8, TIM_IT_Update);
}
}
void TIM9_UP_IRQHandler(void)
{
2023-12-13 21:54:20 +08:00
if (TIM_GetITStatus(TIM9, TIM_IT_Update) != RESET) {
2023-12-11 21:45:06 +08:00
TIM_ClearITPendingBit(TIM9, TIM_IT_Update);
}
}
void TIM10_UP_IRQHandler(void)
{
2023-12-13 21:54:20 +08:00
if (TIM_GetITStatus(TIM10, TIM_IT_Update) != RESET) {
2023-12-11 21:45:06 +08:00
TIM_ClearITPendingBit(TIM10, TIM_IT_Update);
}
}
//.section .text.vector_handler, "ax", @progbits
// .weak EXTI0_IRQHandler /* EXTI Line 0 */
// .weak EXTI1_IRQHandler /* EXTI Line 1 */
// .weak EXTI2_IRQHandler /* EXTI Line 2 */
// .weak EXTI3_IRQHandler /* EXTI Line 3 */
// .weak EXTI4_IRQHandler /* EXTI Line 4 */
// .weak DMA1_Channel1_IRQHandler /* DMA1 Channel 1 */
// .weak DMA1_Channel2_IRQHandler /* DMA1 Channel 2 */
// .weak DMA1_Channel3_IRQHandler /* DMA1 Channel 3 */
// .weak DMA1_Channel4_IRQHandler /* DMA1 Channel 4 */
// .weak DMA1_Channel5_IRQHandler /* DMA1 Channel 5 */
// .weak DMA1_Channel6_IRQHandler /* DMA1 Channel 6 */
// .weak DMA1_Channel7_IRQHandler /* DMA1 Channel 7 */
// .weak ADC1_2_IRQHandler /* ADC1_2 */
// .weak USB_HP_CAN1_TX_IRQHandler /* USB HP and CAN1 TX */
// .weak USB_LP_CAN1_RX0_IRQHandler /* USB LP and CAN1RX0 */
// .weak CAN1_RX1_IRQHandler /* CAN1 RX1 */
// .weak CAN1_SCE_IRQHandler /* CAN1 SCE */
// .weak EXTI9_5_IRQHandler /* EXTI Line 9..5 */
// .weak TIM1_BRK_IRQHandler /* TIM1 Break */
// .weak TIM1_UP_IRQHandler /* TIM1 Update */
// .weak TIM1_TRG_COM_IRQHandler /* TIM1 Trigger and Commutation */
// .weak TIM1_CC_IRQHandler /* TIM1 Capture Compare */
// .weak TIM2_IRQHandler /* TIM2 */
// .weak TIM3_IRQHandler /* TIM3 */
// .weak TIM4_IRQHandler /* TIM4 */
// .weak I2C1_EV_IRQHandler /* I2C1 Event */
// .weak I2C1_ER_IRQHandler /* I2C1 Error */
// .weak I2C2_EV_IRQHandler /* I2C2 Event */
// .weak I2C2_ER_IRQHandler /* I2C2 Error */
// .weak SPI1_IRQHandler /* SPI1 */
// .weak SPI2_IRQHandler /* SPI2 */
// .weak USART1_IRQHandler /* USART1 */
// .weak USART2_IRQHandler /* USART2 */
// .weak USART3_IRQHandler /* USART3 */
// .weak EXTI15_10_IRQHandler /* EXTI Line 15..10 */
// .weak RTCAlarm_IRQHandler /* RTC Alarm through EXTI Line */
// .weak USBWakeUp_IRQHandler /* USB Wakeup from suspend */
// .weak TIM8_BRK_IRQHandler /* TIM8 Break */
// .weak TIM8_UP_IRQHandler /* TIM8 Update */
// .weak TIM8_TRG_COM_IRQHandler /* TIM8 Trigger and Commutation */
// .weak TIM8_CC_IRQHandler /* TIM8 Capture Compare */
// .weak RNG_IRQHandler /* RNG */
// .weak FSMC_IRQHandler /* FSMC */
// .weak SDIO_IRQHandler /* SDIO */
// .weak TIM5_IRQHandler /* TIM5 */
// .weak SPI3_IRQHandler /* SPI3 */
// .weak UART4_IRQHandler /* UART4 */
// .weak UART5_IRQHandler /* UART5 */
// .weak TIM6_IRQHandler /* TIM6 */
// .weak TIM7_IRQHandler /* TIM7 */
// .weak DMA2_Channel1_IRQHandler /* DMA2 Channel 1 */
// .weak DMA2_Channel2_IRQHandler /* DMA2 Channel 2 */
// .weak DMA2_Channel3_IRQHandler /* DMA2 Channel 3 */
// .weak DMA2_Channel4_IRQHandler /* DMA2 Channel 4 */
// .weak DMA2_Channel5_IRQHandler /* DMA2 Channel 5 */
// .weak ETH_IRQHandler /* ETH */
// .weak ETH_WKUP_IRQHandler /* ETH WakeUp */
// .weak CAN2_TX_IRQHandler /* CAN2 TX */
// .weak CAN2_RX0_IRQHandler /* CAN2 RX0 */
// .weak CAN2_RX1_IRQHandler /* CAN2 RX1 */
// .weak CAN2_SCE_IRQHandler /* CAN2 SCE */
// .weak OTG_FS_IRQHandler /* OTGFS */
// .weak USBHSWakeup_IRQHandler /* USBHS Wakeup */
// .weak USBHS_IRQHandler /* USBHS */
// .weak DVP_IRQHandler /* DVP */
// .weak UART6_IRQHandler /* UART6 */
// .weak UART7_IRQHandler /* UART7 */
// .weak UART8_IRQHandler /* UART8 */
// .weak TIM9_BRK_IRQHandler /* TIM9 Break */
// .weak TIM9_UP_IRQHandler /* TIM9 Update */
// .weak TIM9_TRG_COM_IRQHandler /* TIM9 Trigger and Commutation */
// .weak TIM9_CC_IRQHandler /* TIM9 Capture Compare */
// .weak TIM10_BRK_IRQHandler /* TIM10 Break */
// .weak TIM10_UP_IRQHandler /* TIM10 Update */
// .weak TIM10_TRG_COM_IRQHandler /* TIM10 Trigger and Commutation */
// .weak TIM10_CC_IRQHandler /* TIM10 Capture Compare */
// .weak DMA2_Channel6_IRQHandler /* DMA2 Channel 6 */
// .weak DMA2_Channel7_IRQHandler /* DMA2 Channel 7 */
// .weak DMA2_Channel8_IRQHandler /* DMA2 Channel 8 */
// .weak DMA2_Channel9_IRQHandler /* DMA2 Channel 9 */
// .weak DMA2_Channel10_IRQHandler /* DMA2 Channel 10 */
// .weak DMA2_Channel11_IRQHandler /* DMA2 Channel 11 */
/*******************************************************************************
2023-12-13 21:54:20 +08:00
* Function Name : NMI_Handler
* Description : This function handles NMI exception.
* Input : None
* Return : None
*******************************************************************************/
2023-12-11 21:45:06 +08:00
void NMI_Handler(void)
{
}
/*******************************************************************************
2023-12-13 21:54:20 +08:00
* Function Name : HardFault_Handler
* Description : This function handles Hard Fault exception.
* Input : None
* Return : None
*******************************************************************************/
2023-12-11 21:45:06 +08:00
void HardFault_Handler(void)
{
2023-12-13 21:54:20 +08:00
while (1) {
}
2023-12-11 21:45:06 +08:00
}