aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Rosenthal <[email protected]>2021-11-10 13:01:39 -0700
committerJacob Rosenthal <[email protected]>2021-11-10 13:03:44 -0700
commit3b7af2f4edccc57d31c6db5644b3f1384600f0fd (patch)
tree4bb76aa35b2903074099772a1f4cfe19b5c2a4a8
parent751617c2be10c047ccf6986ace489999b80a01b0 (diff)
fix wait seqend, pwm example is slow now...
-rw-r--r--embassy-nrf/src/pwm.rs12
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 @@
3use core::marker::PhantomData; 3use core::marker::PhantomData;
4use core::sync::atomic::{compiler_fence, Ordering}; 4use core::sync::atomic::{compiler_fence, Ordering};
5use embassy::util::Unborrow; 5use embassy::util::Unborrow;
6use embassy_hal_common::{low_power_wait_until, unborrow}; 6use embassy_hal_common::unborrow;
7 7
8use crate::gpio::sealed::Pin as _; 8use crate::gpio::sealed::Pin as _;
9use crate::gpio::{AnyPin, OptionalPin as GpioOptionalPin}; 9use 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