/*********************************************************************************************************************
 * COPYRIGHT NOTICE
 * Copyright (c) 2020,逐飞科技
 * All rights reserved.
 * 技术讨论QQ群：三群：824575535
 *
 * 以下所有内容版权均属逐飞科技所有，未经允许不得用于商业用途，
 * 欢迎各位使用并传播本程序，修改内容时必须保留逐飞科技的版权声明。
 *
 * @file       		eru
 * @company	   		成都逐飞科技有限公司
 * @author     		逐飞科技(QQ3184284598)
 * @version    		查看doc内version文件 版本说明
 * @Software 		ADS v1.2.2
 * @Target core		TC264D
 * @Taobao   		https://seekfree.taobao.com/
 * @date       		2020-3-23
 ********************************************************************************************************************/
 
#ifndef _zf_eru_h
#define _zf_eru_h

#include "common.h"



typedef enum  // 枚举触发方式
{
    RISING,
    FALLING,
    BOTH,
}TRIGGER_enum;

typedef enum  // 枚举ERU通道
{
	//一个通道只能选择其中一个引脚作为 外部中断的输入
	//例如通道0 可选引脚为P10_7 和 P15_4，
	//在LQFP144封装中没有P10_7
	ERU_CH0_REQ4_P10_7   = 0*3,  ERU_CH0_REQ0_P15_4,						//通道0可选引脚   LQFP没有P10_7引脚
	//在LQFP144封装中没有P10_8
	ERU_CH1_REQ5_P10_8   = 1*3,  ERU_CH1_REQ10_P14_3,						//通道1可选引脚   LQFP没有P10_8引脚
	ERU_CH2_REQ7_P00_4   = 2*3,  ERU_CH2_REQ14_P02_1, ERU_CH2_REQ2_P10_2,	//通道2可选引脚
	ERU_CH3_REQ6_P02_0   = 3*3,  ERU_CH3_REQ3_P10_3,  ERU_CH3_REQ15_P14_1,	//通道3可选引脚

	//通道4与通道0 共用中断函数 在中断内通过判断标志位来识别是哪个通道触发的中断
	ERU_CH4_REQ13_P15_5  = 4*3,  ERU_CH4_REQ8_P33_7,						//通道4可选引脚
	//通道5与通道1 共用中断函数
	ERU_CH5_REQ1_P15_8   = 5*3,												//通道5可选引脚
	//通道6与通道2 共用中断函数
	ERU_CH6_REQ12_P11_10 = 6*3,  ERU_CH6_REQ9_P20_0,						//通道6可选引脚
	//通道7与通道3 共用中断函数
	ERU_CH7_REQ16_P15_1  = 7*3,  ERU_CH7_REQ11_P20_9,						//通道7可选引脚
}ERU_PIN_enum;

//特别注意通道2 与 通道3都被摄像头占用，意味着只有两个外部中断可供用户使用





//中断标志位获取
#define GET_GPIO_FLAG(eru_pin)   	IfxScuEru_getEventFlagStatus((IfxScuEru_InputChannel)(eru_pin/3))
//中断标志位清除
#define CLEAR_GPIO_FLAG(eru_pin) 	IfxScuEru_clearEventFlag((IfxScuEru_InputChannel)(eru_pin/3))





void eru_init(ERU_PIN_enum eru_pin, TRIGGER_enum trigger);
void eru_enable_interrupt(ERU_PIN_enum eru_pin);
void eru_disable_interrupt(ERU_PIN_enum eru_pin);
#endif
