diff --git a/esp-hal/CHANGELOG.md b/esp-hal/CHANGELOG.md index 7a0b1a43611..652f01b2eb3 100644 --- a/esp-hal/CHANGELOG.md +++ b/esp-hal/CHANGELOG.md @@ -37,6 +37,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improved `#[ram(zeroed)]` soundness by adding a `bytemuck::Zeroable` type bound (#1677) - EESP32-S2 / ESP32-S3: Fix UsbDm and UsbDp for Gpio19 and Gpio20 - Fix reading/writing small buffers via SPI master async dma (#1760) +- Remove unnecessary delay in rtc_ctnl (#1794) ### Changed diff --git a/esp-hal/src/rtc_cntl/mod.rs b/esp-hal/src/rtc_cntl/mod.rs index 03b7e1eea4e..baaa8f3cffb 100644 --- a/esp-hal/src/rtc_cntl/mod.rs +++ b/esp-hal/src/rtc_cntl/mod.rs @@ -286,36 +286,23 @@ impl<'d> Rtc<'d> { /// Enter deep sleep and wake with the provided `wake_sources`. #[cfg(any(esp32, esp32s3, esp32c3, esp32c6))] - pub fn sleep_deep( - &mut self, - wake_sources: &[&dyn WakeSource], - delay: &mut crate::delay::Delay, - ) -> ! { + pub fn sleep_deep(&mut self, wake_sources: &[&dyn WakeSource]) -> ! { let config = RtcSleepConfig::deep(); - self.sleep(&config, wake_sources, delay); + self.sleep(&config, wake_sources); unreachable!(); } /// Enter light sleep and wake with the provided `wake_sources`. #[cfg(any(esp32, esp32s3, esp32c3, esp32c6))] - pub fn sleep_light( - &mut self, - wake_sources: &[&dyn WakeSource], - delay: &mut crate::delay::Delay, - ) { + pub fn sleep_light(&mut self, wake_sources: &[&dyn WakeSource]) { let config = RtcSleepConfig::default(); - self.sleep(&config, wake_sources, delay); + self.sleep(&config, wake_sources); } /// Enter sleep with the provided `config` and wake with the provided /// `wake_sources`. #[cfg(any(esp32, esp32s3, esp32c3, esp32c6))] - pub fn sleep( - &mut self, - config: &RtcSleepConfig, - wake_sources: &[&dyn WakeSource], - delay: &mut crate::delay::Delay, - ) { + pub fn sleep(&mut self, config: &RtcSleepConfig, wake_sources: &[&dyn WakeSource]) { let mut config = *config; let mut wakeup_triggers = WakeTriggers::default(); for wake_source in wake_sources { @@ -323,7 +310,6 @@ impl<'d> Rtc<'d> { } config.apply(); - delay.delay_millis(100); config.start_sleep(wakeup_triggers); config.finish_sleep(); diff --git a/examples/src/bin/sleep_timer.rs b/examples/src/bin/sleep_timer.rs index b5663e9ca8f..5f886a566a7 100644 --- a/examples/src/bin/sleep_timer.rs +++ b/examples/src/bin/sleep_timer.rs @@ -25,7 +25,7 @@ fn main() -> ! { let system = SystemControl::new(peripherals.SYSTEM); let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); - let mut delay = Delay::new(&clocks); + let delay = Delay::new(&clocks); let mut rtc = Rtc::new(peripherals.LPWR, None); println!("up and runnning!"); @@ -37,5 +37,5 @@ fn main() -> ! { let timer = TimerWakeupSource::new(Duration::from_secs(5)); println!("sleeping!"); delay.delay_millis(100); - rtc.sleep_deep(&[&timer], &mut delay); + rtc.sleep_deep(&[&timer]); } diff --git a/examples/src/bin/sleep_timer_ext0.rs b/examples/src/bin/sleep_timer_ext0.rs index df45ac30e39..d07909f84ef 100644 --- a/examples/src/bin/sleep_timer_ext0.rs +++ b/examples/src/bin/sleep_timer_ext0.rs @@ -43,11 +43,11 @@ fn main() -> ! { let wake_reason = get_wakeup_cause(); println!("wake reason: {:?}", wake_reason); - let mut delay = Delay::new(&clocks); + let delay = Delay::new(&clocks); let timer = TimerWakeupSource::new(Duration::from_secs(30)); let ext0 = Ext0WakeupSource::new(&mut ext0_pin, WakeupLevel::High); println!("sleeping!"); delay.delay_millis(100); - rtc.sleep_deep(&[&timer, &ext0], &mut delay); + rtc.sleep_deep(&[&timer, &ext0]); } diff --git a/examples/src/bin/sleep_timer_ext1.rs b/examples/src/bin/sleep_timer_ext1.rs index 726549c2672..d8e7b0b0e0c 100644 --- a/examples/src/bin/sleep_timer_ext1.rs +++ b/examples/src/bin/sleep_timer_ext1.rs @@ -44,12 +44,12 @@ fn main() -> ! { let wake_reason = get_wakeup_cause(); println!("wake reason: {:?}", wake_reason); - let mut delay = Delay::new(&clocks); + let delay = Delay::new(&clocks); let timer = TimerWakeupSource::new(Duration::from_secs(30)); let mut wakeup_pins: [&mut dyn RtcPin; 2] = [&mut pin_0, &mut pin_2]; let ext1 = Ext1WakeupSource::new(&mut wakeup_pins, WakeupLevel::High); println!("sleeping!"); delay.delay_millis(100); - rtc.sleep_deep(&[&timer, &ext1], &mut delay); + rtc.sleep_deep(&[&timer, &ext1]); } diff --git a/examples/src/bin/sleep_timer_lpio.rs b/examples/src/bin/sleep_timer_lpio.rs index 3dbf9a1715b..cc7fa18beef 100644 --- a/examples/src/bin/sleep_timer_lpio.rs +++ b/examples/src/bin/sleep_timer_lpio.rs @@ -44,7 +44,7 @@ fn main() -> ! { let wake_reason = get_wakeup_cause(); println!("wake reason: {:?}", wake_reason); - let mut delay = Delay::new(&clocks); + let delay = Delay::new(&clocks); let timer = TimerWakeupSource::new(Duration::from_secs(10)); let wakeup_pins: &mut [(&mut dyn RtcPinWithResistors, WakeupLevel)] = &mut [ @@ -55,5 +55,5 @@ fn main() -> ! { let rtcio = Ext1WakeupSource::new(wakeup_pins); println!("sleeping!"); delay.delay_millis(100); - rtc.sleep_deep(&[&timer, &rtcio], &mut delay); + rtc.sleep_deep(&[&timer, &rtcio]); } diff --git a/examples/src/bin/sleep_timer_rtcio.rs b/examples/src/bin/sleep_timer_rtcio.rs index cf06e5a62fd..4865697c543 100644 --- a/examples/src/bin/sleep_timer_rtcio.rs +++ b/examples/src/bin/sleep_timer_rtcio.rs @@ -43,7 +43,7 @@ fn main() -> ! { let wake_reason = get_wakeup_cause(); println!("wake reason: {:?}", wake_reason); - let mut delay = Delay::new(&clocks); + let delay = Delay::new(&clocks); let timer = TimerWakeupSource::new(Duration::from_secs(10)); #[cfg(feature = "esp32c3")] @@ -59,5 +59,5 @@ fn main() -> ! { let rtcio = RtcioWakeupSource::new(wakeup_pins); println!("sleeping!"); delay.delay_millis(100); - rtc.sleep_deep(&[&timer, &rtcio], &mut delay); + rtc.sleep_deep(&[&timer, &rtcio]); }