diff options
| -rw-r--r-- | embassy-stm32f4/src/exti.rs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/embassy-stm32f4/src/exti.rs b/embassy-stm32f4/src/exti.rs index 11704e6d1..140b6330c 100644 --- a/embassy-stm32f4/src/exti.rs +++ b/embassy-stm32f4/src/exti.rs | |||
| @@ -99,11 +99,12 @@ impl<T: gpio::ExtiPin + WithInterrupt + 'static> WaitForRisingEdge for ExtiPin<T | |||
| 99 | s.pin.clear_interrupt_pending_bit(); | 99 | s.pin.clear_interrupt_pending_bit(); |
| 100 | async move { | 100 | async move { |
| 101 | let fut = InterruptFuture::new(&mut s.interrupt); | 101 | let fut = InterruptFuture::new(&mut s.interrupt); |
| 102 | let pin = &mut s.pin; | ||
| 102 | cortex_m::interrupt::free(|_| { | 103 | cortex_m::interrupt::free(|_| { |
| 103 | let mut exti: EXTI = unsafe { mem::transmute(()) }; | 104 | let mut exti: EXTI = unsafe { mem::transmute(()) }; |
| 104 | 105 | ||
| 105 | s.pin.trigger_on_edge(&mut exti, Edge::RISING); | 106 | pin.trigger_on_edge(&mut exti, Edge::RISING); |
| 106 | s.pin.enable_interrupt(&mut exti); | 107 | pin.enable_interrupt(&mut exti); |
| 107 | }); | 108 | }); |
| 108 | fut.await; | 109 | fut.await; |
| 109 | 110 | ||
| @@ -121,11 +122,12 @@ impl<T: gpio::ExtiPin + WithInterrupt + 'static> WaitForFallingEdge for ExtiPin< | |||
| 121 | s.pin.clear_interrupt_pending_bit(); | 122 | s.pin.clear_interrupt_pending_bit(); |
| 122 | async move { | 123 | async move { |
| 123 | let fut = InterruptFuture::new(&mut s.interrupt); | 124 | let fut = InterruptFuture::new(&mut s.interrupt); |
| 125 | let pin = &mut s.pin; | ||
| 124 | cortex_m::interrupt::free(|_| { | 126 | cortex_m::interrupt::free(|_| { |
| 125 | let mut exti: EXTI = unsafe { mem::transmute(()) }; | 127 | let mut exti: EXTI = unsafe { mem::transmute(()) }; |
| 126 | 128 | ||
| 127 | s.pin.trigger_on_edge(&mut exti, Edge::FALLING); | 129 | pin.trigger_on_edge(&mut exti, Edge::FALLING); |
| 128 | s.pin.enable_interrupt(&mut exti); | 130 | pin.enable_interrupt(&mut exti); |
| 129 | }); | 131 | }); |
| 130 | fut.await; | 132 | fut.await; |
| 131 | 133 | ||
