Files
TC264_Library_seekfree/Example/2-LED_Blink_Demo/USER/isr.c
SEEKFREE_Kang deec768bb2 V1.0.2
修改模拟IIC默认延时时间为20
 添加 需要特别注意P20_2是不能用于输出的,仅仅只有输入的功能 注意事项
 将摄像头采集DMA改为link传输,可以大大降低DMA中断次数
 修改默认的软件IIC引脚定义
 将6050等 需要用到软件IIC的模块,在初始化函数中默认调用模拟IIC初始化
 添加小钻风驱动程序
2020-04-15 20:07:26 +08:00

181 lines
4.2 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 tasking v6.3r1
* @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, CCU6_0_CH0_INT_SERVICE, CCU6_0_CH0_ISR_PRIORITY)
{
PIT_CLEAR_FLAG(CCU6_0, PIT_CH0);
}
IFX_INTERRUPT(cc60_pit_ch1_isr, CCU6_0_CH1_INT_SERVICE, CCU6_0_CH1_ISR_PRIORITY)
{
PIT_CLEAR_FLAG(CCU6_0, PIT_CH1);
}
IFX_INTERRUPT(cc61_pit_ch0_isr, CCU6_1_CH0_INT_SERVICE, CCU6_1_CH0_ISR_PRIORITY)
{
PIT_CLEAR_FLAG(CCU6_1, PIT_CH0);
}
IFX_INTERRUPT(cc61_pit_ch1_isr, CCU6_1_CH1_INT_SERVICE, CCU6_1_CH1_ISR_PRIORITY)
{
PIT_CLEAR_FLAG(CCU6_1, PIT_CH1);
}
IFX_INTERRUPT(eru_ch0_ch4_isr, ERU_CH0_CH4_INT_SERVICE, ERU_CH0_CH4_INT_PRIO)
{
if(GET_GPIO_FLAG(ERU_CH0_REQ4_P10_7))//通道0中断
{
CLEAR_GPIO_FLAG(ERU_CH0_REQ4_P10_7);
}
if(GET_GPIO_FLAG(ERU_CH4_REQ13_P15_5))//通道4中断
{
CLEAR_GPIO_FLAG(ERU_CH4_REQ13_P15_5);
}
}
IFX_INTERRUPT(eru_ch1_ch5_isr, ERU_CH1_CH5_INT_SERVICE, ERU_CH1_CH5_INT_PRIO)
{
if(GET_GPIO_FLAG(ERU_CH1_REQ5_P10_8))//通道1中断
{
CLEAR_GPIO_FLAG(ERU_CH1_REQ5_P10_8);
}
if(GET_GPIO_FLAG(ERU_CH5_REQ1_P15_8))//通道5中断
{
CLEAR_GPIO_FLAG(ERU_CH5_REQ1_P15_8);
}
}
//由于摄像头pclk引脚默认占用了 2通道用于触发DMA因此这里不再定义中断函数
//IFX_INTERRUPT(eru_ch2_ch6_isr, ERU_CH2_CH6_INT_SERVICE, ERU_CH2_CH6_INT_PRIO)
//{
// 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, ERU_CH3_CH7_INT_SERVICE, ERU_CH3_CH7_INT_PRIO)
{
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, ERU_DMA_INT_SERVICE, ERU_DMA_INT_PRIO)
{
if (1 == camera_type) mt9v03x_dma();
else if (3 == camera_type) ov7725_dma();
}
//串口中断函数 示例
IFX_INTERRUPT(uart0_tx_isr, UART0_INT_SERVICE, UART0_TX_INT_PRIO)
{
IfxAsclin_Asc_isrTransmit(&uart0_handle);
}
IFX_INTERRUPT(uart0_rx_isr, UART0_INT_SERVICE, UART0_RX_INT_PRIO)
{
IfxAsclin_Asc_isrReceive(&uart0_handle);
}
IFX_INTERRUPT(uart0_er_isr, UART0_INT_SERVICE, UART0_ER_INT_PRIO)
{
IfxAsclin_Asc_isrError(&uart0_handle);
}
//串口1默认连接到摄像头配置串口
IFX_INTERRUPT(uart1_tx_isr, UART1_INT_SERVICE, UART1_TX_INT_PRIO)
{
IfxAsclin_Asc_isrTransmit(&uart1_handle);
}
IFX_INTERRUPT(uart1_rx_isr, UART1_INT_SERVICE, UART1_RX_INT_PRIO)
{
IfxAsclin_Asc_isrReceive(&uart1_handle);
mt9v03x_uart_callback();
}
IFX_INTERRUPT(uart1_er_isr, UART1_INT_SERVICE, UART1_ER_INT_PRIO)
{
IfxAsclin_Asc_isrError(&uart1_handle);
}
//串口2默认连接到无线转串口模块
IFX_INTERRUPT(uart2_tx_isr, UART2_INT_SERVICE, UART2_TX_INT_PRIO)
{
IfxAsclin_Asc_isrTransmit(&uart2_handle);
}
IFX_INTERRUPT(uart2_rx_isr, UART2_INT_SERVICE, UART2_RX_INT_PRIO)
{
IfxAsclin_Asc_isrReceive(&uart2_handle);
wireless_uart_callback();
}
IFX_INTERRUPT(uart2_er_isr, UART2_INT_SERVICE, UART2_ER_INT_PRIO)
{
IfxAsclin_Asc_isrError(&uart2_handle);
}
IFX_INTERRUPT(uart3_tx_isr, UART3_INT_SERVICE, UART3_TX_INT_PRIO)
{
IfxAsclin_Asc_isrTransmit(&uart3_handle);
}
IFX_INTERRUPT(uart3_rx_isr, UART3_INT_SERVICE, UART3_RX_INT_PRIO)
{
IfxAsclin_Asc_isrReceive(&uart3_handle);
}
IFX_INTERRUPT(uart3_er_isr, UART3_INT_SERVICE, UART3_ER_INT_PRIO)
{
IfxAsclin_Asc_isrError(&uart3_handle);
}