From aca7b86c7e60852ab7ea22a3b793eca7860f4887 Mon Sep 17 00:00:00 2001 From: Jacob Rosenthal Date: Thu, 11 Nov 2021 23:47:35 -0700 Subject: [PATCH] pwm_sequence show implicit and explicit stop functionality --- examples/nrf/src/bin/pwm_sequence.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/examples/nrf/src/bin/pwm_sequence.rs b/examples/nrf/src/bin/pwm_sequence.rs index 1e15bf6c..8f57b524 100644 --- a/examples/nrf/src/bin/pwm_sequence.rs +++ b/examples/nrf/src/bin/pwm_sequence.rs @@ -22,6 +22,7 @@ async fn main(_spawner: Spawner, p: Peripherals) { // so we want to repeat our value as many times as necessary until 5000ms passes // want 5000/8 = 625 periods total to occur, so 624 (we get the one period for free remember) config.refresh = 624; + // thus our sequence takes 5 * 5000ms or 25 seconds let pwm = unwrap!(SequencePwm::new( p.PWM0, @@ -36,7 +37,9 @@ async fn main(_spawner: Spawner, p: Peripherals) { info!("pwm started!"); - loop { - Timer::after(Duration::from_millis(5000)).await; - } + // we can abort a sequence if we need to before its complete with pwm.stop() + // or stop is also implicitly called when the pwm peripheral is dropped + // when it goes out of scope + Timer::after(Duration::from_millis(20000)).await; + info!("pwm stopped early!"); }