This commit is contained in:
Priec
2025-12-14 15:16:24 +01:00
parent 20dfdbc335
commit 053cba171d
4 changed files with 30 additions and 1 deletions

View File

@@ -57,5 +57,11 @@ pub async fn execute_low_power(
}
}
}
LowPowerCmd::Sleep => {
info!("Entering Sleep mode (WFI)...");
use crate::sleep::sleep::{enter_sleep_mode, SleepEntry};
enter_sleep_mode(SleepEntry::Wfi);
info!("Woke up from Sleep mode.");
}
}
}

View File

@@ -4,5 +4,6 @@ pub mod standby;
pub mod shutdown;
pub mod stop;
pub mod handler;
pub mod sleep;
pub use stop::StopEntry;

View File

@@ -0,0 +1,19 @@
// src/sleep/sleep.rs
use cortex_m::Peripherals;
#[derive(Clone, Copy, Debug, defmt::Format)]
pub enum SleepEntry {
Wfi,
Wfe,
}
pub fn enter_sleep_mode(entry: SleepEntry) {
let mut core = unsafe { Peripherals::steal() };
core.SCB.clear_sleepdeep();
match entry {
SleepEntry::Wfi => cortex_m::asm::wfi(),
SleepEntry::Wfe => cortex_m::asm::wfe(),
}
}