mirror of
https://gitee.com/seekfree/TC264_Library.git
synced 2026-06-04 03:32:56 +00:00
对ISR文件内的中断函数全部添加enableInterrupts(); 以实现中断嵌套的功能 增加RDA5807获取RSSI功能函数 对DMA连接传输所用到的变量,根据ERU_DMA_INT_SERVICE来将变量放到对应的CPU中
208 lines
4.9 KiB
C
208 lines
4.9 KiB
C
/*********************************************************************************************************************
|
||
* COPYRIGHT NOTICE
|
||
* Copyright (c) 2020,逐飞科技
|
||
* All rights reserved.
|
||
* 技术讨论QQ群:三群:824575535
|
||
*
|
||
* 以下所有内容版权均属逐飞科技所有,未经允许不得用于商业用途,
|
||
* 欢迎各位使用并传播本程序,修改内容时必须保留逐飞科技的版权声明。
|
||
*
|
||
* @file isr
|
||
* @company 成都逐飞科技有限公司
|
||
* @author 逐飞科技(QQ3184284598)
|
||
* @version 查看doc内version文件 版本说明
|
||
* @Software tasking v6.3r1
|
||
* @Target core TC264D
|
||
* @Taobao https://seekfree.taobao.com/
|
||
* @date 2020-3-23
|
||
********************************************************************************************************************/
|
||
|
||
|
||
#include "isr_config.h"
|
||
#include "isr.h"
|
||
//在isr.c的中断函数,函数定义的第二个参数固定为0,请不要更改,即使你用CPU1处理中断也不要更改,需要CPU1处理中断只需要在isr_config.h内修改对应的宏定义即可
|
||
|
||
|
||
//PIT中断函数 示例
|
||
IFX_INTERRUPT(cc60_pit_ch0_isr, 0, CCU6_0_CH0_ISR_PRIORITY)
|
||
{
|
||
enableInterrupts();//开启中断嵌套
|
||
PIT_CLEAR_FLAG(CCU6_0, PIT_CH0);
|
||
|
||
}
|
||
|
||
|
||
IFX_INTERRUPT(cc60_pit_ch1_isr, 0, CCU6_0_CH1_ISR_PRIORITY)
|
||
{
|
||
enableInterrupts();//开启中断嵌套
|
||
PIT_CLEAR_FLAG(CCU6_0, PIT_CH1);
|
||
|
||
}
|
||
|
||
IFX_INTERRUPT(cc61_pit_ch0_isr, 0, CCU6_1_CH0_ISR_PRIORITY)
|
||
{
|
||
enableInterrupts();//开启中断嵌套
|
||
PIT_CLEAR_FLAG(CCU6_1, PIT_CH0);
|
||
|
||
}
|
||
|
||
IFX_INTERRUPT(cc61_pit_ch1_isr, 0, CCU6_1_CH1_ISR_PRIORITY)
|
||
{
|
||
enableInterrupts();//开启中断嵌套
|
||
PIT_CLEAR_FLAG(CCU6_1, PIT_CH1);
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
IFX_INTERRUPT(eru_ch0_ch4_isr, ERU_CH0_CH4_INT_SERVICE, ERU_CH0_CH4_INT_PRIO)
|
||
{
|
||
enableInterrupts();//开启中断嵌套
|
||
if(GET_GPIO_FLAG(ERU_CH0_REQ4_P10_7))//通道0中断
|
||
{
|
||
CLEAR_GPIO_FLAG(ERU_CH0_REQ4_P10_7);
|
||
printf("eru ch0 be triggered\n");
|
||
}
|
||
|
||
if(GET_GPIO_FLAG(ERU_CH4_REQ13_P15_5))//通道4中断
|
||
{
|
||
CLEAR_GPIO_FLAG(ERU_CH4_REQ13_P15_5);
|
||
printf("eru ch4 be triggered\n");
|
||
}
|
||
}
|
||
|
||
IFX_INTERRUPT(eru_ch1_ch5_isr, ERU_CH1_CH5_INT_SERVICE, ERU_CH1_CH5_INT_PRIO)
|
||
{
|
||
enableInterrupts();//开启中断嵌套
|
||
if(GET_GPIO_FLAG(ERU_CH1_REQ5_P10_8))//通道1中断
|
||
{
|
||
CLEAR_GPIO_FLAG(ERU_CH1_REQ5_P10_8);
|
||
printf("eru ch1 be triggered\n");
|
||
}
|
||
|
||
if(GET_GPIO_FLAG(ERU_CH5_REQ1_P15_8))//通道5中断
|
||
{
|
||
CLEAR_GPIO_FLAG(ERU_CH5_REQ1_P15_8);
|
||
printf("eru ch5 be triggered\n");
|
||
}
|
||
}
|
||
|
||
//由于摄像头pclk引脚默认占用了 2通道,用于触发DMA,因此这里不再定义中断函数
|
||
//IFX_INTERRUPT(eru_ch2_ch6_isr, 0, ERU_CH2_CH6_INT_PRIO)
|
||
//{
|
||
// enableInterrupts();//开启中断嵌套
|
||
// if(GET_GPIO_FLAG(ERU_CH2_REQ7_P00_4))//通道2中断
|
||
// {
|
||
// CLEAR_GPIO_FLAG(ERU_CH2_REQ7_P00_4);
|
||
//
|
||
// }
|
||
// if(GET_GPIO_FLAG(ERU_CH6_REQ9_P20_0))//通道6中断
|
||
// {
|
||
// CLEAR_GPIO_FLAG(ERU_CH6_REQ9_P20_0);
|
||
//
|
||
// }
|
||
//}
|
||
|
||
|
||
|
||
IFX_INTERRUPT(eru_ch3_ch7_isr, 0, ERU_CH3_CH7_INT_PRIO)
|
||
{
|
||
enableInterrupts();//开启中断嵌套
|
||
if(GET_GPIO_FLAG(ERU_CH3_REQ6_P02_0))//通道3中断
|
||
{
|
||
CLEAR_GPIO_FLAG(ERU_CH3_REQ6_P02_0);
|
||
if (1 == camera_type) mt9v03x_vsync();
|
||
else if (3 == camera_type) ov7725_vsync();
|
||
|
||
}
|
||
if(GET_GPIO_FLAG(ERU_CH7_REQ16_P15_1))//通道7中断
|
||
{
|
||
CLEAR_GPIO_FLAG(ERU_CH7_REQ16_P15_1);
|
||
|
||
}
|
||
}
|
||
|
||
|
||
|
||
IFX_INTERRUPT(dma_ch5_isr, 0, ERU_DMA_INT_PRIO)
|
||
{
|
||
enableInterrupts();//开启中断嵌套
|
||
|
||
if (1 == camera_type) mt9v03x_dma();
|
||
else if (3 == camera_type) ov7725_dma();
|
||
}
|
||
|
||
|
||
//串口中断函数 示例
|
||
IFX_INTERRUPT(uart0_tx_isr, 0, UART0_TX_INT_PRIO)
|
||
{
|
||
enableInterrupts();//开启中断嵌套
|
||
IfxAsclin_Asc_isrTransmit(&uart0_handle);
|
||
}
|
||
IFX_INTERRUPT(uart0_rx_isr, 0, UART0_RX_INT_PRIO)
|
||
{
|
||
enableInterrupts();//开启中断嵌套
|
||
IfxAsclin_Asc_isrReceive(&uart0_handle);
|
||
}
|
||
IFX_INTERRUPT(uart0_er_isr, 0, UART0_ER_INT_PRIO)
|
||
{
|
||
enableInterrupts();//开启中断嵌套
|
||
IfxAsclin_Asc_isrError(&uart0_handle);
|
||
}
|
||
|
||
//串口1默认连接到摄像头配置串口
|
||
IFX_INTERRUPT(uart1_tx_isr, 0, UART1_TX_INT_PRIO)
|
||
{
|
||
enableInterrupts();//开启中断嵌套
|
||
IfxAsclin_Asc_isrTransmit(&uart1_handle);
|
||
}
|
||
IFX_INTERRUPT(uart1_rx_isr, 0, UART1_RX_INT_PRIO)
|
||
{
|
||
enableInterrupts();//开启中断嵌套
|
||
IfxAsclin_Asc_isrReceive(&uart1_handle);
|
||
mt9v03x_uart_callback();
|
||
}
|
||
IFX_INTERRUPT(uart1_er_isr, 0, UART1_ER_INT_PRIO)
|
||
{
|
||
enableInterrupts();//开启中断嵌套
|
||
IfxAsclin_Asc_isrError(&uart1_handle);
|
||
}
|
||
|
||
|
||
//串口2默认连接到无线转串口模块
|
||
IFX_INTERRUPT(uart2_tx_isr, 0, UART2_TX_INT_PRIO)
|
||
{
|
||
enableInterrupts();//开启中断嵌套
|
||
IfxAsclin_Asc_isrTransmit(&uart2_handle);
|
||
}
|
||
IFX_INTERRUPT(uart2_rx_isr, 0, UART2_RX_INT_PRIO)
|
||
{
|
||
enableInterrupts();//开启中断嵌套
|
||
IfxAsclin_Asc_isrReceive(&uart2_handle);
|
||
wireless_uart_callback();
|
||
}
|
||
IFX_INTERRUPT(uart2_er_isr, 0, UART2_ER_INT_PRIO)
|
||
{
|
||
enableInterrupts();//开启中断嵌套
|
||
IfxAsclin_Asc_isrError(&uart2_handle);
|
||
}
|
||
|
||
|
||
|
||
IFX_INTERRUPT(uart3_tx_isr, 0, UART3_TX_INT_PRIO)
|
||
{
|
||
enableInterrupts();//开启中断嵌套
|
||
IfxAsclin_Asc_isrTransmit(&uart3_handle);
|
||
}
|
||
IFX_INTERRUPT(uart3_rx_isr, 0, UART3_RX_INT_PRIO)
|
||
{
|
||
enableInterrupts();//开启中断嵌套
|
||
IfxAsclin_Asc_isrReceive(&uart3_handle);
|
||
}
|
||
IFX_INTERRUPT(uart3_er_isr, 0, UART3_ER_INT_PRIO)
|
||
{
|
||
enableInterrupts();//开启中断嵌套
|
||
IfxAsclin_Asc_isrError(&uart3_handle);
|
||
}
|