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
135
TWR_EXTI_LINE_P0
=
TWR_EXTI_LINE_PA0
,
136
138
TWR_EXTI_LINE_P1
=
TWR_EXTI_LINE_PA1
,
139
141
TWR_EXTI_LINE_P2
=
TWR_EXTI_LINE_PA2
,
142
144
TWR_EXTI_LINE_P3
=
TWR_EXTI_LINE_PA3
,
145
147
TWR_EXTI_LINE_P4
=
TWR_EXTI_LINE_PA4
,
148
150
TWR_EXTI_LINE_P5
=
TWR_EXTI_LINE_PA5
,
151
153
TWR_EXTI_LINE_P6
=
TWR_EXTI_LINE_PB1
,
154
156
TWR_EXTI_LINE_P7
=
TWR_EXTI_LINE_PA6
,
157
159
TWR_EXTI_LINE_P8
=
TWR_EXTI_LINE_PB0
,
160
162
TWR_EXTI_LINE_P9
=
TWR_EXTI_LINE_PB2
,
163
165
TWR_EXTI_LINE_P10
=
TWR_EXTI_LINE_PA10
,
166
168
TWR_EXTI_LINE_P11
=
TWR_EXTI_LINE_PA9
,
169
171
TWR_EXTI_LINE_P12
=
TWR_EXTI_LINE_PB14
,
172
174
TWR_EXTI_LINE_P13
=
TWR_EXTI_LINE_PB15
,
175
177
TWR_EXTI_LINE_P14
=
TWR_EXTI_LINE_PB13
,
178
180
TWR_EXTI_LINE_P15
=
TWR_EXTI_LINE_PB12
,
181
183
TWR_EXTI_LINE_P16
=
TWR_EXTI_LINE_PB8
,
184
186
TWR_EXTI_LINE_P17
=
TWR_EXTI_LINE_PB9
,
187
189
TWR_EXTI_LINE_BUTTON
=
TWR_EXTI_LINE_PA8
190
191
}
twr_exti_line_t
;
192
194
195
typedef
enum
196
{
198
TWR_EXTI_EDGE_RISING
= 0,
199
201
TWR_EXTI_EDGE_FALLING
= 1,
202
204
TWR_EXTI_EDGE_RISING_AND_FALLING
= 2
205
206
}
twr_exti_edge_t
;
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
219
void
twr_exti_unregister
(
twr_exti_line_t
line);
220
222
223
#endif
// _TWR_EXTI_H
twr_exti_register
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
twr_exti_unregister
void twr_exti_unregister(twr_exti_line_t line)
Disable EXTI line interrupt.
Definition:
twr_exti.c:90
twr_exti_line_t
twr_exti_line_t
EXTI lines.
Definition:
twr_exti.h:22
twr_exti_edge_t
twr_exti_edge_t
Interrupt edge sensitivity.
Definition:
twr_exti.h:196
TWR_EXTI_LINE_PA13
@ TWR_EXTI_LINE_PA13
EXTI line PA13.
Definition:
twr_exti.h:63
TWR_EXTI_LINE_P6
@ TWR_EXTI_LINE_P6
EXTI line P6.
Definition:
twr_exti.h:153
TWR_EXTI_LINE_P7
@ TWR_EXTI_LINE_P7
EXTI line P7.
Definition:
twr_exti.h:156
TWR_EXTI_LINE_PB14
@ TWR_EXTI_LINE_PB14
EXTI line PB14.
Definition:
twr_exti.h:114
TWR_EXTI_LINE_PA1
@ TWR_EXTI_LINE_PA1
EXTI line PA1.
Definition:
twr_exti.h:27
TWR_EXTI_LINE_PB0
@ TWR_EXTI_LINE_PB0
EXTI line PB0.
Definition:
twr_exti.h:72
TWR_EXTI_LINE_P8
@ TWR_EXTI_LINE_P8
EXTI line P8.
Definition:
twr_exti.h:159
TWR_EXTI_LINE_P0
@ TWR_EXTI_LINE_P0
EXTI line P0.
Definition:
twr_exti.h:135
TWR_EXTI_LINE_PA4
@ TWR_EXTI_LINE_PA4
EXTI line PA4.
Definition:
twr_exti.h:36
TWR_EXTI_LINE_PA14
@ TWR_EXTI_LINE_PA14
EXTI line PA14.
Definition:
twr_exti.h:66
TWR_EXTI_LINE_PB7
@ TWR_EXTI_LINE_PB7
EXTI line PB7.
Definition:
twr_exti.h:93
TWR_EXTI_LINE_P5
@ TWR_EXTI_LINE_P5
EXTI line P5.
Definition:
twr_exti.h:150
TWR_EXTI_LINE_PA9
@ TWR_EXTI_LINE_PA9
EXTI line PA9.
Definition:
twr_exti.h:51
TWR_EXTI_LINE_PB15
@ TWR_EXTI_LINE_PB15
EXTI line PB15.
Definition:
twr_exti.h:117
TWR_EXTI_LINE_PC14
@ TWR_EXTI_LINE_PC14
EXTI line PC14.
Definition:
twr_exti.h:123
TWR_EXTI_LINE_PA12
@ TWR_EXTI_LINE_PA12
EXTI line PA12.
Definition:
twr_exti.h:60
TWR_EXTI_LINE_PA15
@ TWR_EXTI_LINE_PA15
EXTI line PA15.
Definition:
twr_exti.h:69
TWR_EXTI_LINE_P2
@ TWR_EXTI_LINE_P2
EXTI line P2.
Definition:
twr_exti.h:141
TWR_EXTI_LINE_PA0
@ TWR_EXTI_LINE_PA0
EXTI line PA0.
Definition:
twr_exti.h:24
TWR_EXTI_LINE_PA10
@ TWR_EXTI_LINE_PA10
EXTI line PA10.
Definition:
twr_exti.h:54
TWR_EXTI_LINE_P13
@ TWR_EXTI_LINE_P13
EXTI line P13.
Definition:
twr_exti.h:174
TWR_EXTI_LINE_BUTTON
@ TWR_EXTI_LINE_BUTTON
EXTI line BUTTON.
Definition:
twr_exti.h:189
TWR_EXTI_LINE_P9
@ TWR_EXTI_LINE_P9
EXTI line P9.
Definition:
twr_exti.h:162
TWR_EXTI_LINE_P10
@ TWR_EXTI_LINE_P10
EXTI line P10.
Definition:
twr_exti.h:165
TWR_EXTI_LINE_PB10
@ TWR_EXTI_LINE_PB10
EXTI line PB10.
Definition:
twr_exti.h:102
TWR_EXTI_LINE_PB12
@ TWR_EXTI_LINE_PB12
EXTI line PB12.
Definition:
twr_exti.h:108
TWR_EXTI_LINE_PC15
@ TWR_EXTI_LINE_PC15
EXTI line PC15.
Definition:
twr_exti.h:126
TWR_EXTI_LINE_PB13
@ TWR_EXTI_LINE_PB13
EXTI line PB13.
Definition:
twr_exti.h:111
TWR_EXTI_LINE_PA5
@ TWR_EXTI_LINE_PA5
EXTI line PA5.
Definition:
twr_exti.h:39
TWR_EXTI_LINE_P15
@ TWR_EXTI_LINE_P15
EXTI line P15.
Definition:
twr_exti.h:180
TWR_EXTI_LINE_P3
@ TWR_EXTI_LINE_P3
EXTI line P3.
Definition:
twr_exti.h:144
TWR_EXTI_LINE_PA3
@ TWR_EXTI_LINE_PA3
EXTI line PA3.
Definition:
twr_exti.h:33
TWR_EXTI_LINE_P16
@ TWR_EXTI_LINE_P16
EXTI line P16.
Definition:
twr_exti.h:183
TWR_EXTI_LINE_PA7
@ TWR_EXTI_LINE_PA7
EXTI line PA7.
Definition:
twr_exti.h:45
TWR_EXTI_LINE_P1
@ TWR_EXTI_LINE_P1
EXTI line P1.
Definition:
twr_exti.h:138
TWR_EXTI_LINE_P11
@ TWR_EXTI_LINE_P11
EXTI line P11.
Definition:
twr_exti.h:168
TWR_EXTI_LINE_PA6
@ TWR_EXTI_LINE_PA6
EXTI line PA6.
Definition:
twr_exti.h:42
TWR_EXTI_LINE_PB4
@ TWR_EXTI_LINE_PB4
EXTI line PB4.
Definition:
twr_exti.h:84
TWR_EXTI_LINE_PH1
@ TWR_EXTI_LINE_PH1
EXTI line PH1.
Definition:
twr_exti.h:132
TWR_EXTI_LINE_PB9
@ TWR_EXTI_LINE_PB9
EXTI line PB9.
Definition:
twr_exti.h:99
TWR_EXTI_LINE_PB3
@ TWR_EXTI_LINE_PB3
EXTI line PB3.
Definition:
twr_exti.h:81
TWR_EXTI_LINE_P4
@ TWR_EXTI_LINE_P4
EXTI line P4.
Definition:
twr_exti.h:147
TWR_EXTI_LINE_PA8
@ TWR_EXTI_LINE_PA8
EXTI line PA8.
Definition:
twr_exti.h:48
TWR_EXTI_LINE_PB1
@ TWR_EXTI_LINE_PB1
EXTI line PB1.
Definition:
twr_exti.h:75
TWR_EXTI_LINE_P17
@ TWR_EXTI_LINE_P17
EXTI line P17.
Definition:
twr_exti.h:186
TWR_EXTI_LINE_PA2
@ TWR_EXTI_LINE_PA2
EXTI line PA2.
Definition:
twr_exti.h:30
TWR_EXTI_LINE_PB8
@ TWR_EXTI_LINE_PB8
EXTI line PB8.
Definition:
twr_exti.h:96
TWR_EXTI_LINE_PB5
@ TWR_EXTI_LINE_PB5
EXTI line PB5.
Definition:
twr_exti.h:87
TWR_EXTI_LINE_PC13
@ TWR_EXTI_LINE_PC13
EXTI line PC13.
Definition:
twr_exti.h:120
TWR_EXTI_LINE_PB11
@ TWR_EXTI_LINE_PB11
EXTI line PB11.
Definition:
twr_exti.h:105
TWR_EXTI_LINE_P14
@ TWR_EXTI_LINE_P14
EXTI line P14.
Definition:
twr_exti.h:177
TWR_EXTI_LINE_PH0
@ TWR_EXTI_LINE_PH0
EXTI line PH0.
Definition:
twr_exti.h:129
TWR_EXTI_LINE_PA11
@ TWR_EXTI_LINE_PA11
EXTI line PA11.
Definition:
twr_exti.h:57
TWR_EXTI_LINE_PB6
@ TWR_EXTI_LINE_PB6
EXTI line PB6.
Definition:
twr_exti.h:90
TWR_EXTI_LINE_PB2
@ TWR_EXTI_LINE_PB2
EXTI line PB2.
Definition:
twr_exti.h:78
TWR_EXTI_LINE_P12
@ TWR_EXTI_LINE_P12
EXTI line P12.
Definition:
twr_exti.h:171
TWR_EXTI_EDGE_FALLING
@ TWR_EXTI_EDGE_FALLING
EXTI line is configured to falling edge sensitivity.
Definition:
twr_exti.h:201
TWR_EXTI_EDGE_RISING_AND_FALLING
@ 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
@ TWR_EXTI_EDGE_RISING
EXTI line is configured to rising edge sensitivity.
Definition:
twr_exti.h:198
twr
inc
twr_exti.h
Generated by
1.9.1