aboutsummaryrefslogtreecommitdiff
path: root/tests/stm32/src/bin/rtc.rs
diff options
context:
space:
mode:
authorxoviat <[email protected]>2025-11-04 20:55:18 +0000
committerGitHub <[email protected]>2025-11-04 20:55:18 +0000
commitd23c027dd1a1c5f7cdf818750dddf6a250658423 (patch)
tree5b81e8e0ca18d95d9852e986fe67f33db17de559 /tests/stm32/src/bin/rtc.rs
parentda4af0a7ae67d8ec592edf5eff9bbaed2d9e439a (diff)
parenta6412c923280082c506c75e6428e7d87870580eb (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.rs18
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};
9use common::*; 9use common::*;
10use defmt::assert; 10use defmt::assert;
11use embassy_executor::Spawner; 11use embassy_executor::Spawner;
12#[cfg(feature = "stop")]
13use embassy_stm32::low_power::reconfigure_rtc;
12use embassy_stm32::rcc::LsConfig; 14use embassy_stm32::rcc::LsConfig;
15#[cfg(feature = "stop")]
16use embassy_stm32::rtc::RtcTimeProvider;
17#[cfg(not(feature = "stop"))]
13use embassy_stm32::rtc::{Rtc, RtcConfig}; 18use embassy_stm32::rtc::{Rtc, RtcConfig};
14use embassy_time::Timer; 19use embassy_time::Timer;
15
16#[embassy_executor::main] 20#[embassy_executor::main]
17async fn main(_spawner: Spawner) { 21async 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);