1 /* 2 * Copyright (c) 2006-2020, YICHIP Development Team 3 * @file yc_exit.h 4 * @brief source file for setting exit 5 * 6 * Change Logs: 7 * Date Author Version Notes 8 * 2021-12-24 yangzhengfeng V1.0.0 Modify the register module configuration 9 * 2021-01-03 wangjingfan V1.0.1 Compile error correction 10 */ 11 12 #ifndef __YC_EXTI_H__ 13 #define __YC_EXTI_H__ 14 15 #ifdef __cplusplus 16 extern "C" { 17 #endif 18 19 #include "yc3122.h" 20 #include "yc_gpio.h" 21 22 /** 23 * @brief EXTI Trigger enumeration 24 */ 25 typedef enum 26 { 27 EXTI_Trigger_Off = 0, 28 EXTI_Trigger_HighLev = 1, 29 EXTI_Trigger_LowLev = 2, 30 EXTI_Trigger_Rising = 3, 31 EXTI_Trigger_Falling = 4, 32 EXTI_Trigger_Rising_Falling = 5, 33 EXTI_Trigger_DEFAULT_VAL = 0xff 34 } EXTI_TriggerTypeDef; 35 36 #define IS_TRIG_TYPEDEF(TRIGTYPE) ((TRIGTYPE) == EXTI_Trigger_Off || \ 37 (TRIGTYPE) == EXTI_Trigger_HighLev || \ 38 (TRIGTYPE) == EXTI_Trigger_LowLev || \ 39 (TRIGTYPE) == EXTI_Trigger_Rising || \ 40 (TRIGTYPE) == EXTI_Trigger_Falling || \ 41 (TRIGTYPE) == EXTI_Trigger_Rising_Falling) 42 43 /** 44 * @brief EXTI Trigger source 45 */ 46 typedef enum 47 { 48 EXTI_Line_0 = 0, 49 EXTI_Line_1 = 1, 50 EXTI_Line_2 = 2, 51 EXTI_Line_3 = 3, 52 EXTI_Line_4 = 4, 53 EXTI_Line_DEFAULT_VAL = 0xff 54 } EXTI_LineTypeDef; 55 56 #define IS_EXTI_LINE(LINE) (((LINE) == EXTI_Line_0) || \ 57 ((LINE) == EXTI_Line_1) || \ 58 ((LINE) == EXTI_Line_2) || \ 59 ((LINE) == EXTI_Line_3) || \ 60 ((LINE) == EXTI_Line_4)) 61 62 #define IS_EXTI_PIN_SOURCE(PIN) (((((PIN) & ~(uint16_t)0xFFFF)) == 0x00) && ((PIN) != (uint16_t)0x00)) 63 64 #define EXTI_MODE_TypeDef GPIO_MODULE_TypeDef 65 #define EXTI_PIN_TypeDef GPIO_Pin_TypeDef 66 #define EXIT_Num GPIO_PORT_NUM 67 #define EXIT_Pin_Num GPIO_PIN_NUM 68 69 void EXTI_ClearITPendingBit(EXTI_LineTypeDef EXTI_Line, EXTI_PIN_TypeDef EXTI_PinSource); 70 void EXTI_DeInit(void); 71 uint16_t EXTI_GetITLineStatus(EXTI_LineTypeDef EXTI_Line); 72 uint16_t EXTI_GetITEXTI_PinSourceStatus(EXTI_LineTypeDef EXTI_Line, EXTI_PIN_TypeDef EXTI_PinSource); 73 void EXTI_LineConfig(EXTI_LineTypeDef EXTI_Line, EXTI_PIN_TypeDef EXTI_PinSource, EXTI_TriggerTypeDef EXTI_Trigger); 74 75 #ifdef __cplusplus 76 } 77 #endif 78 79 #endif /* __YC_EXTI_H__ */ 80 81 /************************ (C) COPYRIGHT Yichip Microelectronics *****END OF FILE****/ 82