aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxoviat <[email protected]>2025-11-04 12:47:55 -0600
committerxoviat <[email protected]>2025-11-04 12:47:55 -0600
commitc93aa229a8965a5e0a45a507b04f07d825fe1a1a (patch)
treefe007fc90ad63e51c7565b11d27444553787d4de
parent488d06c0e9da673f770b41d8f79bf26227dc6d53 (diff)
stm32: fix rtc test
-rw-r--r--tests/stm32/src/bin/rtc.rs18
-rw-r--r--tests/stm32/src/bin/stop.rs11
2 files changed, 20 insertions, 9 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);
diff --git a/tests/stm32/src/bin/stop.rs b/tests/stm32/src/bin/stop.rs
index 73580f0f2..a9dbac676 100644
--- a/tests/stm32/src/bin/stop.rs
+++ b/tests/stm32/src/bin/stop.rs
@@ -10,9 +10,8 @@ use common::*;
10use cortex_m_rt::entry; 10use cortex_m_rt::entry;
11use embassy_executor::Spawner; 11use embassy_executor::Spawner;
12use embassy_stm32::Config; 12use embassy_stm32::Config;
13use embassy_stm32::low_power::{Executor, StopMode, stop_ready, stop_with_rtc}; 13use embassy_stm32::low_power::{Executor, StopMode, reconfigure_rtc, stop_ready};
14use embassy_stm32::rcc::LsConfig; 14use embassy_stm32::rcc::LsConfig;
15use embassy_stm32::rtc::{Rtc, RtcConfig};
16use embassy_time::Timer; 15use embassy_time::Timer;
17 16
18#[entry] 17#[entry]
@@ -57,7 +56,7 @@ async fn async_main(spawner: Spawner) {
57 config.rcc.hsi = Some(HSIPrescaler::DIV4); // 64 MHz HSI will need a /4 56 config.rcc.hsi = Some(HSIPrescaler::DIV4); // 64 MHz HSI will need a /4
58 } 57 }
59 58
60 let p = init_with_config(config); 59 let _p = init_with_config(config);
61 info!("Hello World!"); 60 info!("Hello World!");
62 61
63 let now = NaiveDate::from_ymd_opt(2020, 5, 15) 62 let now = NaiveDate::from_ymd_opt(2020, 5, 15)
@@ -65,11 +64,7 @@ async fn async_main(spawner: Spawner) {
65 .and_hms_opt(10, 30, 15) 64 .and_hms_opt(10, 30, 15)
66 .unwrap(); 65 .unwrap();
67 66
68 let mut rtc = Rtc::new(p.RTC, RtcConfig::default()); 67 reconfigure_rtc(|rtc| rtc.set_datetime(now.into()).expect("datetime not set"));
69
70 rtc.set_datetime(now.into()).expect("datetime not set");
71
72 stop_with_rtc(rtc);
73 68
74 spawner.spawn(task_1().unwrap()); 69 spawner.spawn(task_1().unwrap());
75 spawner.spawn(task_2().unwrap()); 70 spawner.spawn(task_2().unwrap());