diff options
| author | xoviat <[email protected]> | 2025-11-04 20:55:18 +0000 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-11-04 20:55:18 +0000 |
| commit | d23c027dd1a1c5f7cdf818750dddf6a250658423 (patch) | |
| tree | 5b81e8e0ca18d95d9852e986fe67f33db17de559 /tests/stm32/src/bin/rtc.rs | |
| parent | da4af0a7ae67d8ec592edf5eff9bbaed2d9e439a (diff) | |
| parent | a6412c923280082c506c75e6428e7d87870580eb (diff) | |
Merge pull request #4838 from embassy-rs/lp2
stm32/low-power: cleanup and improve
Diffstat (limited to 'tests/stm32/src/bin/rtc.rs')
| -rw-r--r-- | tests/stm32/src/bin/rtc.rs | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/tests/stm32/src/bin/rtc.rs b/tests/stm32/src/bin/rtc.rs index 5fe98d807..5c80eb250 100644 --- a/tests/stm32/src/bin/rtc.rs +++ b/tests/stm32/src/bin/rtc.rs | |||
| @@ -9,10 +9,14 @@ use chrono::{NaiveDate, NaiveDateTime}; | |||
| 9 | use common::*; | 9 | use common::*; |
| 10 | use defmt::assert; | 10 | use defmt::assert; |
| 11 | use embassy_executor::Spawner; | 11 | use embassy_executor::Spawner; |
| 12 | #[cfg(feature = "stop")] | ||
| 13 | use embassy_stm32::low_power::reconfigure_rtc; | ||
| 12 | use embassy_stm32::rcc::LsConfig; | 14 | use embassy_stm32::rcc::LsConfig; |
| 15 | #[cfg(feature = "stop")] | ||
| 16 | use embassy_stm32::rtc::RtcTimeProvider; | ||
| 17 | #[cfg(not(feature = "stop"))] | ||
| 13 | use embassy_stm32::rtc::{Rtc, RtcConfig}; | 18 | use embassy_stm32::rtc::{Rtc, RtcConfig}; |
| 14 | use embassy_time::Timer; | 19 | use embassy_time::Timer; |
| 15 | |||
| 16 | #[embassy_executor::main] | 20 | #[embassy_executor::main] |
| 17 | async fn main(_spawner: Spawner) { | 21 | async fn main(_spawner: Spawner) { |
| 18 | let mut config = config(); | 22 | let mut config = config(); |
| @@ -26,14 +30,26 @@ async fn main(_spawner: Spawner) { | |||
| 26 | .and_hms_opt(10, 30, 15) | 30 | .and_hms_opt(10, 30, 15) |
| 27 | .unwrap(); | 31 | .unwrap(); |
| 28 | 32 | ||
| 33 | #[cfg(not(feature = "stop"))] | ||
| 29 | let mut rtc = Rtc::new(p.RTC, RtcConfig::default()); | 34 | let mut rtc = Rtc::new(p.RTC, RtcConfig::default()); |
| 30 | 35 | ||
| 36 | #[cfg(feature = "stop")] | ||
| 37 | let time_provider = RtcTimeProvider::new(p.RTC); | ||
| 38 | |||
| 39 | #[cfg(not(feature = "stop"))] | ||
| 31 | rtc.set_datetime(now.into()).expect("datetime not set"); | 40 | rtc.set_datetime(now.into()).expect("datetime not set"); |
| 32 | 41 | ||
| 42 | #[cfg(feature = "stop")] | ||
| 43 | reconfigure_rtc(|rtc| rtc.set_datetime(now.into()).expect("datetime not set")); | ||
| 44 | |||
| 33 | info!("Waiting 5 seconds"); | 45 | info!("Waiting 5 seconds"); |
| 34 | Timer::after_millis(5000).await; | 46 | Timer::after_millis(5000).await; |
| 35 | 47 | ||
| 48 | #[cfg(not(feature = "stop"))] | ||
| 36 | let then: NaiveDateTime = rtc.now().unwrap().into(); | 49 | let then: NaiveDateTime = rtc.now().unwrap().into(); |
| 50 | #[cfg(feature = "stop")] | ||
| 51 | let then: NaiveDateTime = time_provider.now().unwrap().into(); | ||
| 52 | |||
| 37 | let seconds = (then - now).num_seconds(); | 53 | let seconds = (then - now).num_seconds(); |
| 38 | 54 | ||
| 39 | info!("measured = {}", seconds); | 55 | info!("measured = {}", seconds); |
