123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258 |
- #ifndef GD32F30X_EXTI_H
- #define GD32F30X_EXTI_H
- #include "gd32f30x.h"
- #define EXTI EXTI_BASE
- #define EXTI_INTEN REG32(EXTI + 0x00U)
- #define EXTI_EVEN REG32(EXTI + 0x04U)
- #define EXTI_RTEN REG32(EXTI + 0x08U)
- #define EXTI_FTEN REG32(EXTI + 0x0CU)
- #define EXTI_SWIEV REG32(EXTI + 0x10U)
- #define EXTI_PD REG32(EXTI + 0x14U)
- #define EXTI_INTEN_INTEN0 BIT(0)
- #define EXTI_INTEN_INTEN1 BIT(1)
- #define EXTI_INTEN_INTEN2 BIT(2)
- #define EXTI_INTEN_INTEN3 BIT(3)
- #define EXTI_INTEN_INTEN4 BIT(4)
- #define EXTI_INTEN_INTEN5 BIT(5)
- #define EXTI_INTEN_INTEN6 BIT(6)
- #define EXTI_INTEN_INTEN7 BIT(7)
- #define EXTI_INTEN_INTEN8 BIT(8)
- #define EXTI_INTEN_INTEN9 BIT(9)
- #define EXTI_INTEN_INTEN10 BIT(10)
- #define EXTI_INTEN_INTEN11 BIT(11)
- #define EXTI_INTEN_INTEN12 BIT(12)
- #define EXTI_INTEN_INTEN13 BIT(13)
- #define EXTI_INTEN_INTEN14 BIT(14)
- #define EXTI_INTEN_INTEN15 BIT(15)
- #define EXTI_INTEN_INTEN16 BIT(16)
- #define EXTI_INTEN_INTEN17 BIT(17)
- #define EXTI_INTEN_INTEN18 BIT(18)
- #define EXTI_INTEN_INTEN19 BIT(19)
- #define EXTI_EVEN_EVEN0 BIT(0)
- #define EXTI_EVEN_EVEN1 BIT(1)
- #define EXTI_EVEN_EVEN2 BIT(2)
- #define EXTI_EVEN_EVEN3 BIT(3)
- #define EXTI_EVEN_EVEN4 BIT(4)
- #define EXTI_EVEN_EVEN5 BIT(5)
- #define EXTI_EVEN_EVEN6 BIT(6)
- #define EXTI_EVEN_EVEN7 BIT(7)
- #define EXTI_EVEN_EVEN8 BIT(8)
- #define EXTI_EVEN_EVEN9 BIT(9)
- #define EXTI_EVEN_EVEN10 BIT(10)
- #define EXTI_EVEN_EVEN11 BIT(11)
- #define EXTI_EVEN_EVEN12 BIT(12)
- #define EXTI_EVEN_EVEN13 BIT(13)
- #define EXTI_EVEN_EVEN14 BIT(14)
- #define EXTI_EVEN_EVEN15 BIT(15)
- #define EXTI_EVEN_EVEN16 BIT(16)
- #define EXTI_EVEN_EVEN17 BIT(17)
- #define EXTI_EVEN_EVEN18 BIT(18)
- #define EXTI_EVEN_EVEN19 BIT(19)
- #define EXTI_RTEN_RTEN0 BIT(0)
- #define EXTI_RTEN_RTEN1 BIT(1)
- #define EXTI_RTEN_RTEN2 BIT(2)
- #define EXTI_RTEN_RTEN3 BIT(3)
- #define EXTI_RTEN_RTEN4 BIT(4)
- #define EXTI_RTEN_RTEN5 BIT(5)
- #define EXTI_RTEN_RTEN6 BIT(6)
- #define EXTI_RTEN_RTEN7 BIT(7)
- #define EXTI_RTEN_RTEN8 BIT(8)
- #define EXTI_RTEN_RTEN9 BIT(9)
- #define EXTI_RTEN_RTEN10 BIT(10)
- #define EXTI_RTEN_RTEN11 BIT(11)
- #define EXTI_RTEN_RTEN12 BIT(12)
- #define EXTI_RTEN_RTEN13 BIT(13)
- #define EXTI_RTEN_RTEN14 BIT(14)
- #define EXTI_RTEN_RTEN15 BIT(15)
- #define EXTI_RTEN_RTEN16 BIT(16)
- #define EXTI_RTEN_RTEN17 BIT(17)
- #define EXTI_RTEN_RTEN18 BIT(18)
- #define EXTI_RTEN_RTEN19 BIT(19)
- #define EXTI_FTEN_FTEN0 BIT(0)
- #define EXTI_FTEN_FTEN1 BIT(1)
- #define EXTI_FTEN_FTEN2 BIT(2)
- #define EXTI_FTEN_FTEN3 BIT(3)
- #define EXTI_FTEN_FTEN4 BIT(4)
- #define EXTI_FTEN_FTEN5 BIT(5)
- #define EXTI_FTEN_FTEN6 BIT(6)
- #define EXTI_FTEN_FTEN7 BIT(7)
- #define EXTI_FTEN_FTEN8 BIT(8)
- #define EXTI_FTEN_FTEN9 BIT(9)
- #define EXTI_FTEN_FTEN10 BIT(10)
- #define EXTI_FTEN_FTEN11 BIT(11)
- #define EXTI_FTEN_FTEN12 BIT(12)
- #define EXTI_FTEN_FTEN13 BIT(13)
- #define EXTI_FTEN_FTEN14 BIT(14)
- #define EXTI_FTEN_FTEN15 BIT(15)
- #define EXTI_FTEN_FTEN16 BIT(16)
- #define EXTI_FTEN_FTEN17 BIT(17)
- #define EXTI_FTEN_FTEN18 BIT(18)
- #define EXTI_FTEN_FTEN19 BIT(19)
- #define EXTI_SWIEV_SWIEV0 BIT(0)
- #define EXTI_SWIEV_SWIEV1 BIT(1)
- #define EXTI_SWIEV_SWIEV2 BIT(2)
- #define EXTI_SWIEV_SWIEV3 BIT(3)
- #define EXTI_SWIEV_SWIEV4 BIT(4)
- #define EXTI_SWIEV_SWIEV5 BIT(5)
- #define EXTI_SWIEV_SWIEV6 BIT(6)
- #define EXTI_SWIEV_SWIEV7 BIT(7)
- #define EXTI_SWIEV_SWIEV8 BIT(8)
- #define EXTI_SWIEV_SWIEV9 BIT(9)
- #define EXTI_SWIEV_SWIEV10 BIT(10)
- #define EXTI_SWIEV_SWIEV11 BIT(11)
- #define EXTI_SWIEV_SWIEV12 BIT(12)
- #define EXTI_SWIEV_SWIEV13 BIT(13)
- #define EXTI_SWIEV_SWIEV14 BIT(14)
- #define EXTI_SWIEV_SWIEV15 BIT(15)
- #define EXTI_SWIEV_SWIEV16 BIT(16)
- #define EXTI_SWIEV_SWIEV17 BIT(17)
- #define EXTI_SWIEV_SWIEV18 BIT(18)
- #define EXTI_SWIEV_SWIEV19 BIT(19)
- #define EXTI_PD_PD0 BIT(0)
- #define EXTI_PD_PD1 BIT(1)
- #define EXTI_PD_PD2 BIT(2)
- #define EXTI_PD_PD3 BIT(3)
- #define EXTI_PD_PD4 BIT(4)
- #define EXTI_PD_PD5 BIT(5)
- #define EXTI_PD_PD6 BIT(6)
- #define EXTI_PD_PD7 BIT(7)
- #define EXTI_PD_PD8 BIT(8)
- #define EXTI_PD_PD9 BIT(9)
- #define EXTI_PD_PD10 BIT(10)
- #define EXTI_PD_PD11 BIT(11)
- #define EXTI_PD_PD12 BIT(12)
- #define EXTI_PD_PD13 BIT(13)
- #define EXTI_PD_PD14 BIT(14)
- #define EXTI_PD_PD15 BIT(15)
- #define EXTI_PD_PD16 BIT(16)
- #define EXTI_PD_PD17 BIT(17)
- #define EXTI_PD_PD18 BIT(18)
- #define EXTI_PD_PD19 BIT(19)
- typedef enum
- {
- EXTI_0 = BIT(0),
- EXTI_1 = BIT(1),
- EXTI_2 = BIT(2),
- EXTI_3 = BIT(3),
- EXTI_4 = BIT(4),
- EXTI_5 = BIT(5),
- EXTI_6 = BIT(6),
- EXTI_7 = BIT(7),
- EXTI_8 = BIT(8),
- EXTI_9 = BIT(9),
- EXTI_10 = BIT(10),
- EXTI_11 = BIT(11),
- EXTI_12 = BIT(12),
- EXTI_13 = BIT(13),
- EXTI_14 = BIT(14),
- EXTI_15 = BIT(15),
- EXTI_16 = BIT(16),
- EXTI_17 = BIT(17),
- EXTI_18 = BIT(18),
- EXTI_19 = BIT(19)
- }exti_line_enum;
- typedef enum
- {
- EXTI_INTERRUPT = 0,
- EXTI_EVENT
- }exti_mode_enum;
- typedef enum
- {
- EXTI_TRIG_RISING = 0,
- EXTI_TRIG_FALLING,
- EXTI_TRIG_BOTH,
- EXTI_TRIG_NONE
- }exti_trig_type_enum;
- void exti_deinit(void);
- void exti_init(exti_line_enum linex, exti_mode_enum mode, exti_trig_type_enum trig_type);
- void exti_interrupt_enable(exti_line_enum linex);
- void exti_interrupt_disable(exti_line_enum linex);
- void exti_event_enable(exti_line_enum linex);
- void exti_event_disable(exti_line_enum linex);
- void exti_software_interrupt_enable(exti_line_enum linex);
- void exti_software_interrupt_disable(exti_line_enum linex);
- FlagStatus exti_flag_get(exti_line_enum linex);
- void exti_flag_clear(exti_line_enum linex);
- FlagStatus exti_interrupt_flag_get(exti_line_enum linex);
- void exti_interrupt_flag_clear(exti_line_enum linex);
- #endif
|