aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxoviat <[email protected]>2021-03-17 20:13:34 -0500
committerxoviat <[email protected]>2021-03-17 20:13:34 -0500
commit7743c8305b9270889b5cc9c5a2f9edb8b7d8ed1f (patch)
tree02f8805ae0a1364192ac0087bf8a5cf77514b2d5
parent4a38e7eb2b71cc721ad16fdb814c1aeb3c2c5e79 (diff)
stm32l0: cleanup exti
-rw-r--r--embassy-stm32l0/src/exti.rs213
1 files changed, 108 insertions, 105 deletions
diff --git a/embassy-stm32l0/src/exti.rs b/embassy-stm32l0/src/exti.rs
index c93d213ef..e5650d3dd 100644
--- a/embassy-stm32l0/src/exti.rs
+++ b/embassy-stm32l0/src/exti.rs
@@ -105,11 +105,13 @@ pub trait PinWithInterrupt: private::Sealed {
105} 105}
106 106
107macro_rules! exti { 107macro_rules! exti {
108 ($($PER:ident => ($set:ident, $pin:ident),)+) => { 108 ($set:ident, [
109 $($INT:ident => $pin:ident,)+
110 ]) => {
109 $( 111 $(
110 impl<T> private::Sealed for gpio::$set::$pin<T> {} 112 impl<T> private::Sealed for gpio::$set::$pin<T> {}
111 impl<T> PinWithInterrupt for gpio::$set::$pin<T> { 113 impl<T> PinWithInterrupt for gpio::$set::$pin<T> {
112 type Interrupt = interrupt::$PER; 114 type Interrupt = interrupt::$INT;
113 fn port(&self) -> gpio::Port { 115 fn port(&self) -> gpio::Port {
114 self.port() 116 self.port()
115 } 117 }
@@ -118,107 +120,108 @@ macro_rules! exti {
118 } 120 }
119 } 121 }
120 )+ 122 )+
121 }
122}
123
124exti! {
125 EXTI0_1 => (gpioa, PA0),
126 EXTI0_1 => (gpioa, PA1),
127 EXTI2_3 => (gpioa, PA2),
128 EXTI2_3 => (gpioa, PA3),
129 EXTI4_15 => (gpioa, PA4),
130 EXTI4_15 => (gpioa, PA5),
131 EXTI4_15 => (gpioa, PA6),
132 EXTI4_15 => (gpioa, PA7),
133 EXTI4_15 => (gpioa, PA8),
134 EXTI4_15 => (gpioa, PA9),
135 EXTI4_15 => (gpioa, PA10),
136 EXTI4_15 => (gpioa, PA11),
137 EXTI4_15 => (gpioa, PA12),
138 EXTI4_15 => (gpioa, PA13),
139 EXTI4_15 => (gpioa, PA14),
140 EXTI4_15 => (gpioa, PA15),
141}
142 123
143exti! { 124 };
144 EXTI0_1 => (gpiob, PB0), 125}
145 EXTI0_1 => (gpiob, PB1), 126
146 EXTI2_3 => (gpiob, PB2), 127exti!(gpioa, [
147 EXTI2_3 => (gpiob, PB3), 128 EXTI0_1 => PA0,
148 EXTI4_15 => (gpiob, PB4), 129 EXTI0_1 => PA1,
149 EXTI4_15 => (gpiob, PB5), 130 EXTI2_3 => PA2,
150 EXTI4_15 => (gpiob, PB6), 131 EXTI2_3 => PA3,
151 EXTI4_15 => (gpiob, PB7), 132 EXTI4_15 => PA4,
152 EXTI4_15 => (gpiob, PB8), 133 EXTI4_15 => PA5,
153 EXTI4_15 => (gpiob, PB9), 134 EXTI4_15 => PA6,
154 EXTI4_15 => (gpiob, PB10), 135 EXTI4_15 => PA7,
155 EXTI4_15 => (gpiob, PB11), 136 EXTI4_15 => PA8,
156 EXTI4_15 => (gpiob, PB12), 137 EXTI4_15 => PA9,
157 EXTI4_15 => (gpiob, PB13), 138 EXTI4_15 => PA10,
158 EXTI4_15 => (gpiob, PB14), 139 EXTI4_15 => PA11,
159 EXTI4_15 => (gpiob, PB15), 140 EXTI4_15 => PA12,
160} 141 EXTI4_15 => PA13,
161 142 EXTI4_15 => PA14,
162exti! { 143 EXTI4_15 => PA15,
163 EXTI0_1 => (gpioc, PC0), 144]);
164 EXTI0_1 => (gpioc, PC1), 145
165 EXTI2_3 => (gpioc, PC2), 146exti!(gpiob, [
166 EXTI2_3 => (gpioc, PC3), 147 EXTI0_1 => PB0,
167 EXTI4_15 => (gpioc, PC4), 148 EXTI0_1 => PB1,
168 EXTI4_15 => (gpioc, PC5), 149 EXTI2_3 => PB2,
169 EXTI4_15 => (gpioc, PC6), 150 EXTI2_3 => PB3,
170 EXTI4_15 => (gpioc, PC7), 151 EXTI4_15 => PB4,
171 EXTI4_15 => (gpioc, PC8), 152 EXTI4_15 => PB5,
172 EXTI4_15 => (gpioc, PC9), 153 EXTI4_15 => PB6,
173 EXTI4_15 => (gpioc, PC10), 154 EXTI4_15 => PB7,
174 EXTI4_15 => (gpioc, PC11), 155 EXTI4_15 => PB8,
175 EXTI4_15 => (gpioc, PC12), 156 EXTI4_15 => PB9,
176 EXTI4_15 => (gpioc, PC13), 157 EXTI4_15 => PB10,
177 EXTI4_15 => (gpioc, PC14), 158 EXTI4_15 => PB11,
178 EXTI4_15 => (gpioc, PC15), 159 EXTI4_15 => PB12,
179} 160 EXTI4_15 => PB13,
180 161 EXTI4_15 => PB14,
181exti! { 162 EXTI4_15 => PB15,
182 EXTI0_1 => (gpiod, PD0), 163]);
183 EXTI0_1 => (gpiod, PD1), 164
184 EXTI2_3 => (gpiod, PD2), 165exti!(gpioc, [
185 EXTI2_3 => (gpiod, PD3), 166 EXTI0_1 => PC0,
186 EXTI4_15 => (gpiod, PD4), 167 EXTI0_1 => PC1,
187 EXTI4_15 => (gpiod, PD5), 168 EXTI2_3 => PC2,
188 EXTI4_15 => (gpiod, PD6), 169 EXTI2_3 => PC3,
189 EXTI4_15 => (gpiod, PD7), 170 EXTI4_15 => PC4,
190 EXTI4_15 => (gpiod, PD8), 171 EXTI4_15 => PC5,
191 EXTI4_15 => (gpiod, PD9), 172 EXTI4_15 => PC6,
192 EXTI4_15 => (gpiod, PD10), 173 EXTI4_15 => PC7,
193 EXTI4_15 => (gpiod, PD11), 174 EXTI4_15 => PC8,
194 EXTI4_15 => (gpiod, PD12), 175 EXTI4_15 => PC9,
195 EXTI4_15 => (gpiod, PD13), 176 EXTI4_15 => PC10,
196 EXTI4_15 => (gpiod, PD14), 177 EXTI4_15 => PC11,
197 EXTI4_15 => (gpiod, PD15), 178 EXTI4_15 => PC12,
198} 179 EXTI4_15 => PC13,
199 180 EXTI4_15 => PC14,
200exti! { 181 EXTI4_15 => PC15,
201 EXTI0_1 => (gpioe, PE0), 182]);
202 EXTI0_1 => (gpioe, PE1), 183
203 EXTI2_3 => (gpioe, PE2), 184exti!(gpiod, [
204 EXTI2_3 => (gpioe, PE3), 185 EXTI0_1 => PD0,
205 EXTI4_15 => (gpioe, PE4), 186 EXTI0_1 => PD1,
206 EXTI4_15 => (gpioe, PE5), 187 EXTI2_3 => PD2,
207 EXTI4_15 => (gpioe, PE6), 188 EXTI2_3 => PD3,
208 EXTI4_15 => (gpioe, PE7), 189 EXTI4_15 => PD4,
209 EXTI4_15 => (gpioe, PE8), 190 EXTI4_15 => PD5,
210 EXTI4_15 => (gpioe, PE9), 191 EXTI4_15 => PD6,
211 EXTI4_15 => (gpioe, PE10), 192 EXTI4_15 => PD7,
212 EXTI4_15 => (gpioe, PE11), 193 EXTI4_15 => PD8,
213 EXTI4_15 => (gpioe, PE12), 194 EXTI4_15 => PD9,
214 EXTI4_15 => (gpioe, PE13), 195 EXTI4_15 => PD10,
215 EXTI4_15 => (gpioe, PE14), 196 EXTI4_15 => PD11,
216 EXTI4_15 => (gpioe, PE15), 197 EXTI4_15 => PD12,
217} 198 EXTI4_15 => PD13,
218 199 EXTI4_15 => PD14,
219exti! { 200 EXTI4_15 => PD15,
220 EXTI0_1 => (gpioh, PH0), 201]);
221 EXTI0_1 => (gpioh, PH1), 202
222 EXTI4_15 => (gpioh, PH9), 203exti!(gpioe, [
223 EXTI4_15 => (gpioh, PH10), 204 EXTI0_1 => PE0,
224} 205 EXTI0_1 => PE1,
206 EXTI2_3 => PE2,
207 EXTI2_3 => PE3,
208 EXTI4_15 => PE4,
209 EXTI4_15 => PE5,
210 EXTI4_15 => PE6,
211 EXTI4_15 => PE7,
212 EXTI4_15 => PE8,
213 EXTI4_15 => PE9,
214 EXTI4_15 => PE10,
215 EXTI4_15 => PE11,
216 EXTI4_15 => PE12,
217 EXTI4_15 => PE13,
218 EXTI4_15 => PE14,
219 EXTI4_15 => PE15,
220]);
221
222exti!(gpioh, [
223 EXTI0_1 => PH0,
224 EXTI0_1 => PH1,
225 EXTI4_15 => PH9,
226 EXTI4_15 => PH10,
227]);