Firmware SDK
twr_exti.h
1 #ifndef _TWR_EXTI_H
2 #define _TWR_EXTI_H
3 
4 #include <twr_common.h>
5 
9 
11 
12 #define _TWR_EXTI_PORT_A 0x00
13 #define _TWR_EXTI_PORT_B 0x10
14 #define _TWR_EXTI_PORT_C 0x20
15 #define _TWR_EXTI_PORT_H 0x50
16 
18 
20 
21 typedef enum
22 {
24  TWR_EXTI_LINE_PA0 = _TWR_EXTI_PORT_A | 0,
25 
27  TWR_EXTI_LINE_PA1 = _TWR_EXTI_PORT_A | 1,
28 
30  TWR_EXTI_LINE_PA2 = _TWR_EXTI_PORT_A | 2,
31 
33  TWR_EXTI_LINE_PA3 = _TWR_EXTI_PORT_A | 3,
34 
36  TWR_EXTI_LINE_PA4 = _TWR_EXTI_PORT_A | 4,
37 
39  TWR_EXTI_LINE_PA5 = _TWR_EXTI_PORT_A | 5,
40 
42  TWR_EXTI_LINE_PA6 = _TWR_EXTI_PORT_A | 6,
43 
45  TWR_EXTI_LINE_PA7 = _TWR_EXTI_PORT_A | 7,
46 
48  TWR_EXTI_LINE_PA8 = _TWR_EXTI_PORT_A | 8,
49 
51  TWR_EXTI_LINE_PA9 = _TWR_EXTI_PORT_A | 9,
52 
54  TWR_EXTI_LINE_PA10 = _TWR_EXTI_PORT_A | 10,
55 
57  TWR_EXTI_LINE_PA11 = _TWR_EXTI_PORT_A | 11,
58 
60  TWR_EXTI_LINE_PA12 = _TWR_EXTI_PORT_A | 12,
61 
63  TWR_EXTI_LINE_PA13 = _TWR_EXTI_PORT_A | 13,
64 
66  TWR_EXTI_LINE_PA14 = _TWR_EXTI_PORT_A | 14,
67 
69  TWR_EXTI_LINE_PA15 = _TWR_EXTI_PORT_A | 15,
70 
72  TWR_EXTI_LINE_PB0 = _TWR_EXTI_PORT_B | 0,
73 
75  TWR_EXTI_LINE_PB1 = _TWR_EXTI_PORT_B | 1,
76 
78  TWR_EXTI_LINE_PB2 = _TWR_EXTI_PORT_B | 2,
79 
81  TWR_EXTI_LINE_PB3 = _TWR_EXTI_PORT_B | 3,
82 
84  TWR_EXTI_LINE_PB4 = _TWR_EXTI_PORT_B | 4,
85 
87  TWR_EXTI_LINE_PB5 = _TWR_EXTI_PORT_B | 5,
88 
90  TWR_EXTI_LINE_PB6 = _TWR_EXTI_PORT_B | 6,
91 
93  TWR_EXTI_LINE_PB7 = _TWR_EXTI_PORT_B | 7,
94 
96  TWR_EXTI_LINE_PB8 = _TWR_EXTI_PORT_B | 8,
97 
99  TWR_EXTI_LINE_PB9 = _TWR_EXTI_PORT_B | 9,
100 
102  TWR_EXTI_LINE_PB10 = _TWR_EXTI_PORT_B | 10,
103 
105  TWR_EXTI_LINE_PB11 = _TWR_EXTI_PORT_B | 11,
106 
108  TWR_EXTI_LINE_PB12 = _TWR_EXTI_PORT_B | 12,
109 
111  TWR_EXTI_LINE_PB13 = _TWR_EXTI_PORT_B | 13,
112 
114  TWR_EXTI_LINE_PB14 = _TWR_EXTI_PORT_B | 14,
115 
117  TWR_EXTI_LINE_PB15 = _TWR_EXTI_PORT_B | 15,
118 
120  TWR_EXTI_LINE_PC13 = _TWR_EXTI_PORT_C | 13,
121 
123  TWR_EXTI_LINE_PC14 = _TWR_EXTI_PORT_C | 14,
124 
126  TWR_EXTI_LINE_PC15 = _TWR_EXTI_PORT_C | 15,
127 
129  TWR_EXTI_LINE_PH0 = _TWR_EXTI_PORT_H | 0,
130 
132  TWR_EXTI_LINE_PH1 = _TWR_EXTI_PORT_H | 1,
133 
136 
139 
142 
145 
148 
151 
154 
157 
160 
163 
166 
169 
172 
175 
178 
181 
184 
187 
190 
192 
194 
195 typedef enum
196 {
199 
202 
205 
207 
213 
214 void twr_exti_register(twr_exti_line_t line, twr_exti_edge_t edge, void (*callback)(twr_exti_line_t, void *), void *param);
215 
218 
220 
222 
223 #endif // _TWR_EXTI_H
void twr_exti_register(twr_exti_line_t line, twr_exti_edge_t edge, void(*callback)(twr_exti_line_t, void *), void *param)
Enable EXTI line interrupt and register callback function.
Definition: twr_exti.c:17
void twr_exti_unregister(twr_exti_line_t line)
Disable EXTI line interrupt.
Definition: twr_exti.c:90
twr_exti_line_t
EXTI lines.
Definition: twr_exti.h:22
twr_exti_edge_t
Interrupt edge sensitivity.
Definition: twr_exti.h:196
@ TWR_EXTI_LINE_PA13
EXTI line PA13.
Definition: twr_exti.h:63
@ TWR_EXTI_LINE_P6
EXTI line P6.
Definition: twr_exti.h:153
@ TWR_EXTI_LINE_P7
EXTI line P7.
Definition: twr_exti.h:156
@ TWR_EXTI_LINE_PB14
EXTI line PB14.
Definition: twr_exti.h:114
@ TWR_EXTI_LINE_PA1
EXTI line PA1.
Definition: twr_exti.h:27
@ TWR_EXTI_LINE_PB0
EXTI line PB0.
Definition: twr_exti.h:72
@ TWR_EXTI_LINE_P8
EXTI line P8.
Definition: twr_exti.h:159
@ TWR_EXTI_LINE_P0
EXTI line P0.
Definition: twr_exti.h:135
@ TWR_EXTI_LINE_PA4
EXTI line PA4.
Definition: twr_exti.h:36
@ TWR_EXTI_LINE_PA14
EXTI line PA14.
Definition: twr_exti.h:66
@ TWR_EXTI_LINE_PB7
EXTI line PB7.
Definition: twr_exti.h:93
@ TWR_EXTI_LINE_P5
EXTI line P5.
Definition: twr_exti.h:150
@ TWR_EXTI_LINE_PA9
EXTI line PA9.
Definition: twr_exti.h:51
@ TWR_EXTI_LINE_PB15
EXTI line PB15.
Definition: twr_exti.h:117
@ TWR_EXTI_LINE_PC14
EXTI line PC14.
Definition: twr_exti.h:123
@ TWR_EXTI_LINE_PA12
EXTI line PA12.
Definition: twr_exti.h:60
@ TWR_EXTI_LINE_PA15
EXTI line PA15.
Definition: twr_exti.h:69
@ TWR_EXTI_LINE_P2
EXTI line P2.
Definition: twr_exti.h:141
@ TWR_EXTI_LINE_PA0
EXTI line PA0.
Definition: twr_exti.h:24
@ TWR_EXTI_LINE_PA10
EXTI line PA10.
Definition: twr_exti.h:54
@ TWR_EXTI_LINE_P13
EXTI line P13.
Definition: twr_exti.h:174
@ TWR_EXTI_LINE_BUTTON
EXTI line BUTTON.
Definition: twr_exti.h:189
@ TWR_EXTI_LINE_P9
EXTI line P9.
Definition: twr_exti.h:162
@ TWR_EXTI_LINE_P10
EXTI line P10.
Definition: twr_exti.h:165
@ TWR_EXTI_LINE_PB10
EXTI line PB10.
Definition: twr_exti.h:102
@ TWR_EXTI_LINE_PB12
EXTI line PB12.
Definition: twr_exti.h:108
@ TWR_EXTI_LINE_PC15
EXTI line PC15.
Definition: twr_exti.h:126
@ TWR_EXTI_LINE_PB13
EXTI line PB13.
Definition: twr_exti.h:111
@ TWR_EXTI_LINE_PA5
EXTI line PA5.
Definition: twr_exti.h:39
@ TWR_EXTI_LINE_P15
EXTI line P15.
Definition: twr_exti.h:180
@ TWR_EXTI_LINE_P3
EXTI line P3.
Definition: twr_exti.h:144
@ TWR_EXTI_LINE_PA3
EXTI line PA3.
Definition: twr_exti.h:33
@ TWR_EXTI_LINE_P16
EXTI line P16.
Definition: twr_exti.h:183
@ TWR_EXTI_LINE_PA7
EXTI line PA7.
Definition: twr_exti.h:45
@ TWR_EXTI_LINE_P1
EXTI line P1.
Definition: twr_exti.h:138
@ TWR_EXTI_LINE_P11
EXTI line P11.
Definition: twr_exti.h:168
@ TWR_EXTI_LINE_PA6
EXTI line PA6.
Definition: twr_exti.h:42
@ TWR_EXTI_LINE_PB4
EXTI line PB4.
Definition: twr_exti.h:84
@ TWR_EXTI_LINE_PH1
EXTI line PH1.
Definition: twr_exti.h:132
@ TWR_EXTI_LINE_PB9
EXTI line PB9.
Definition: twr_exti.h:99
@ TWR_EXTI_LINE_PB3
EXTI line PB3.
Definition: twr_exti.h:81
@ TWR_EXTI_LINE_P4
EXTI line P4.
Definition: twr_exti.h:147
@ TWR_EXTI_LINE_PA8
EXTI line PA8.
Definition: twr_exti.h:48
@ TWR_EXTI_LINE_PB1
EXTI line PB1.
Definition: twr_exti.h:75
@ TWR_EXTI_LINE_P17
EXTI line P17.
Definition: twr_exti.h:186
@ TWR_EXTI_LINE_PA2
EXTI line PA2.
Definition: twr_exti.h:30
@ TWR_EXTI_LINE_PB8
EXTI line PB8.
Definition: twr_exti.h:96
@ TWR_EXTI_LINE_PB5
EXTI line PB5.
Definition: twr_exti.h:87
@ TWR_EXTI_LINE_PC13
EXTI line PC13.
Definition: twr_exti.h:120
@ TWR_EXTI_LINE_PB11
EXTI line PB11.
Definition: twr_exti.h:105
@ TWR_EXTI_LINE_P14
EXTI line P14.
Definition: twr_exti.h:177
@ TWR_EXTI_LINE_PH0
EXTI line PH0.
Definition: twr_exti.h:129
@ TWR_EXTI_LINE_PA11
EXTI line PA11.
Definition: twr_exti.h:57
@ TWR_EXTI_LINE_PB6
EXTI line PB6.
Definition: twr_exti.h:90
@ TWR_EXTI_LINE_PB2
EXTI line PB2.
Definition: twr_exti.h:78
@ TWR_EXTI_LINE_P12
EXTI line P12.
Definition: twr_exti.h:171
@ TWR_EXTI_EDGE_FALLING
EXTI line is configured to falling edge sensitivity.
Definition: twr_exti.h:201
@ TWR_EXTI_EDGE_RISING_AND_FALLING
EXTI line is configured to both rising and falling edge sensitivity.
Definition: twr_exti.h:204
@ TWR_EXTI_EDGE_RISING
EXTI line is configured to rising edge sensitivity.
Definition: twr_exti.h:198