diff options
| author | xoviat <[email protected]> | 2021-03-17 20:13:34 -0500 |
|---|---|---|
| committer | xoviat <[email protected]> | 2021-03-17 20:13:34 -0500 |
| commit | 7743c8305b9270889b5cc9c5a2f9edb8b7d8ed1f (patch) | |
| tree | 02f8805ae0a1364192ac0087bf8a5cf77514b2d5 | |
| parent | 4a38e7eb2b71cc721ad16fdb814c1aeb3c2c5e79 (diff) | |
stm32l0: cleanup exti
| -rw-r--r-- | embassy-stm32l0/src/exti.rs | 213 |
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 | ||
| 107 | macro_rules! exti { | 107 | macro_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 | |||
| 124 | exti! { | ||
| 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 | ||
| 143 | exti! { | 124 | }; |
| 144 | EXTI0_1 => (gpiob, PB0), | 125 | } |
| 145 | EXTI0_1 => (gpiob, PB1), | 126 | |
| 146 | EXTI2_3 => (gpiob, PB2), | 127 | exti!(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, | |
| 162 | exti! { | 143 | EXTI4_15 => PA15, |
| 163 | EXTI0_1 => (gpioc, PC0), | 144 | ]); |
| 164 | EXTI0_1 => (gpioc, PC1), | 145 | |
| 165 | EXTI2_3 => (gpioc, PC2), | 146 | exti!(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, | |
| 181 | exti! { | 162 | EXTI4_15 => PB15, |
| 182 | EXTI0_1 => (gpiod, PD0), | 163 | ]); |
| 183 | EXTI0_1 => (gpiod, PD1), | 164 | |
| 184 | EXTI2_3 => (gpiod, PD2), | 165 | exti!(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, | |
| 200 | exti! { | 181 | EXTI4_15 => PC15, |
| 201 | EXTI0_1 => (gpioe, PE0), | 182 | ]); |
| 202 | EXTI0_1 => (gpioe, PE1), | 183 | |
| 203 | EXTI2_3 => (gpioe, PE2), | 184 | exti!(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, | |
| 219 | exti! { | 200 | EXTI4_15 => PD15, |
| 220 | EXTI0_1 => (gpioh, PH0), | 201 | ]); |
| 221 | EXTI0_1 => (gpioh, PH1), | 202 | |
| 222 | EXTI4_15 => (gpioh, PH9), | 203 | exti!(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 | |||
| 222 | exti!(gpioh, [ | ||
| 223 | EXTI0_1 => PH0, | ||
| 224 | EXTI0_1 => PH1, | ||
| 225 | EXTI4_15 => PH9, | ||
| 226 | EXTI4_15 => PH10, | ||
| 227 | ]); | ||
