Files
TC264_Library_seekfree/Example/Cpu1_Handles_Interrupts_Demo/USER/isr.c
SEEKFREE_Kang bc4ba155ee V1.2.0
增加CH9141蓝牙转串口模块的驱动
    添加无线类型的枚举变量
    修改 删除临时文件.bat 执行完操作后自动关闭窗口
    修改 删除临时文件.bat 避免删除新版本所需文件
    修改工程项目文件,以支持新版本编译
2021-11-16 12:32:52 +08:00

232 lines
5.3 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*********************************************************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2020,逐飞科技
* All rights reserved.
* 技术讨论QQ群三群824575535
*
* 以下所有内容版权均属逐飞科技所有,未经允许不得用于商业用途,
* 欢迎各位使用并传播本程序,修改内容时必须保留逐飞科技的版权声明。
*
* @file isr
* @company 成都逐飞科技有限公司
* @author 逐飞科技(QQ3184284598)
* @version 查看doc内version文件 版本说明
* @Software ADS v1.2.2
* @Target core TC264D
* @Taobao https://seekfree.taobao.com/
* @date 2020-3-23
********************************************************************************************************************/
#include "isr_config.h"
#include "isr.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);
}
uint8 flag_0 = 0;
uint8 flag_4 = 0;
uint8 flag_1 = 0;
uint8 flag_5 = 0;
IFX_INTERRUPT(eru_ch0_ch4_isr, 0, ERU_CH0_CH4_INT_PRIO)
{
enableInterrupts();//开启中断嵌套
if(GET_GPIO_FLAG(ERU_CH0_REQ4_P10_7))//通道0中断
{
CLEAR_GPIO_FLAG(ERU_CH0_REQ4_P10_7);
flag_0 = 1;
// printf("eru ch0 be triggered\n");
}
if(GET_GPIO_FLAG(ERU_CH4_REQ13_P15_5))//通道4中断
{
CLEAR_GPIO_FLAG(ERU_CH4_REQ13_P15_5);
flag_4 = 1;
//printf("eru ch4 be triggered\n");
}
}
IFX_INTERRUPT(eru_ch1_ch5_isr, 0, ERU_CH1_CH5_INT_PRIO)
{
enableInterrupts();//开启中断嵌套
if(GET_GPIO_FLAG(ERU_CH1_REQ5_P10_8))//通道1中断
{
CLEAR_GPIO_FLAG(ERU_CH1_REQ5_P10_8);
flag_1 = 1;
//printf("eru ch1 be triggered\n");
}
if(GET_GPIO_FLAG(ERU_CH5_REQ1_P15_8))//通道5中断
{
CLEAR_GPIO_FLAG(ERU_CH5_REQ1_P15_8);
flag_5 = 1;
//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 (CAMERA_GRAYSCALE == camera_type) mt9v03x_vsync();
else if (CAMERA_BIN_UART == camera_type) ov7725_uart_vsync();
else if (CAMERA_BIN == 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 (CAMERA_GRAYSCALE == camera_type) mt9v03x_dma();
else if (CAMERA_BIN_UART == camera_type) ov7725_uart_dma();
else if (CAMERA_BIN == 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);
if (CAMERA_GRAYSCALE == camera_type) mt9v03x_uart_callback();
else if (CAMERA_BIN_UART == camera_type) ov7725_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);
switch(wireless_type)
{
case WIRELESS_SI24R1:
{
wireless_uart_callback();
}break;
case WIRELESS_CH9141:
{
bluetooth_ch9141_uart_callback();
}break;
default:break;
}
}
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);
}