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