diff options
| author | Jacob Rosenthal <[email protected]> | 2021-11-10 13:01:39 -0700 |
|---|---|---|
| committer | Jacob Rosenthal <[email protected]> | 2021-11-10 13:03:44 -0700 |
| commit | 3b7af2f4edccc57d31c6db5644b3f1384600f0fd (patch) | |
| tree | 4bb76aa35b2903074099772a1f4cfe19b5c2a4a8 | |
| parent | 751617c2be10c047ccf6986ace489999b80a01b0 (diff) | |
fix wait seqend, pwm example is slow now...
| -rw-r--r-- | embassy-nrf/src/pwm.rs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/embassy-nrf/src/pwm.rs b/embassy-nrf/src/pwm.rs index e4ddda395..f0436b5b4 100644 --- a/embassy-nrf/src/pwm.rs +++ b/embassy-nrf/src/pwm.rs | |||
| @@ -3,7 +3,7 @@ | |||
| 3 | use core::marker::PhantomData; | 3 | use core::marker::PhantomData; |
| 4 | use core::sync::atomic::{compiler_fence, Ordering}; | 4 | use core::sync::atomic::{compiler_fence, Ordering}; |
| 5 | use embassy::util::Unborrow; | 5 | use embassy::util::Unborrow; |
| 6 | use embassy_hal_common::{low_power_wait_until, unborrow}; | 6 | use embassy_hal_common::unborrow; |
| 7 | 7 | ||
| 8 | use crate::gpio::sealed::Pin as _; | 8 | use crate::gpio::sealed::Pin as _; |
| 9 | use crate::gpio::{AnyPin, OptionalPin as GpioOptionalPin}; | 9 | use crate::gpio::{AnyPin, OptionalPin as GpioOptionalPin}; |
| @@ -168,7 +168,7 @@ impl<'d, T: Instance> SequencePwm<'d, T> { | |||
| 168 | r.tasks_seqstart[0].write(|w| unsafe { w.bits(0x01) }); | 168 | r.tasks_seqstart[0].write(|w| unsafe { w.bits(0x01) }); |
| 169 | 169 | ||
| 170 | // defensive wait until waveform is loaded after seqstart | 170 | // defensive wait until waveform is loaded after seqstart |
| 171 | low_power_wait_until(|| r.events_seqend[0].read().bits() == 1); | 171 | while r.events_seqend[0].read().bits() == 0 {} |
| 172 | r.events_seqend[0].write(|w| w); | 172 | r.events_seqend[0].write(|w| w); |
| 173 | } | 173 | } |
| 174 | // loop count is how many times to play BOTH sequences | 174 | // loop count is how many times to play BOTH sequences |
| @@ -186,14 +186,14 @@ impl<'d, T: Instance> SequencePwm<'d, T> { | |||
| 186 | r.tasks_seqstart[1].write(|w| unsafe { w.bits(0x01) }); | 186 | r.tasks_seqstart[1].write(|w| unsafe { w.bits(0x01) }); |
| 187 | 187 | ||
| 188 | // defensive wait until waveform is loaded after seqstart | 188 | // defensive wait until waveform is loaded after seqstart |
| 189 | low_power_wait_until(|| r.events_seqend[1].read().bits() == 1); | 189 | while r.events_seqend[1].read().bits() == 0 {} |
| 190 | r.events_seqend[1].write(|w| w); | 190 | r.events_seqend[1].write(|w| w); |
| 191 | } else { | 191 | } else { |
| 192 | // tasks_seqstart() doesn't exist in all svds so write its bit instead | 192 | // tasks_seqstart() doesn't exist in all svds so write its bit instead |
| 193 | r.tasks_seqstart[0].write(|w| unsafe { w.bits(0x01) }); | 193 | r.tasks_seqstart[0].write(|w| unsafe { w.bits(0x01) }); |
| 194 | 194 | ||
| 195 | // defensive wait until waveform is loaded after seqstart | 195 | // defensive wait until waveform is loaded after seqstart |
| 196 | low_power_wait_until(|| r.events_seqend[0].read().bits() == 1); | 196 | while r.events_seqend[0].read().bits() == 0 {} |
| 197 | r.events_seqend[0].write(|w| w); | 197 | r.events_seqend[0].write(|w| w); |
| 198 | } | 198 | } |
| 199 | } | 199 | } |
| @@ -206,7 +206,7 @@ impl<'d, T: Instance> SequencePwm<'d, T> { | |||
| 206 | r.tasks_seqstart[0].write(|w| unsafe { w.bits(0x01) }); | 206 | r.tasks_seqstart[0].write(|w| unsafe { w.bits(0x01) }); |
| 207 | 207 | ||
| 208 | // defensive wait until waveform is loaded after seqstart | 208 | // defensive wait until waveform is loaded after seqstart |
| 209 | low_power_wait_until(|| r.events_seqend[0].read().bits() == 1); | 209 | while r.events_seqend[0].read().bits() == 0 {} |
| 210 | r.events_seqend[0].write(|w| w); | 210 | r.events_seqend[0].write(|w| w); |
| 211 | } | 211 | } |
| 212 | } | 212 | } |
| @@ -463,7 +463,7 @@ impl<'d, T: Instance> SimplePwm<'d, T> { | |||
| 463 | r.tasks_seqstart[0].write(|w| unsafe { w.bits(1) }); | 463 | r.tasks_seqstart[0].write(|w| unsafe { w.bits(1) }); |
| 464 | 464 | ||
| 465 | // defensive wait until waveform is loaded after seqstart | 465 | // defensive wait until waveform is loaded after seqstart |
| 466 | low_power_wait_until(|| r.events_seqend[0].read().bits() == 1); | 466 | while r.events_seqend[0].read().bits() == 0 {} |
| 467 | r.events_seqend[0].write(|w| w); | 467 | r.events_seqend[0].write(|w| w); |
| 468 | } | 468 | } |
| 469 | 469 | ||
