diff options
| author | xoviat <[email protected]> | 2025-11-04 12:47:55 -0600 |
|---|---|---|
| committer | xoviat <[email protected]> | 2025-11-04 12:47:55 -0600 |
| commit | c93aa229a8965a5e0a45a507b04f07d825fe1a1a (patch) | |
| tree | fe007fc90ad63e51c7565b11d27444553787d4de /tests/stm32 | |
| parent | 488d06c0e9da673f770b41d8f79bf26227dc6d53 (diff) | |
stm32: fix rtc test
Diffstat (limited to 'tests/stm32')
| -rw-r--r-- | tests/stm32/src/bin/rtc.rs | 18 | ||||
| -rw-r--r-- | tests/stm32/src/bin/stop.rs | 11 |
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}; | |||
| 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); |
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::*; | |||
| 10 | use cortex_m_rt::entry; | 10 | use cortex_m_rt::entry; |
| 11 | use embassy_executor::Spawner; | 11 | use embassy_executor::Spawner; |
| 12 | use embassy_stm32::Config; | 12 | use embassy_stm32::Config; |
| 13 | use embassy_stm32::low_power::{Executor, StopMode, stop_ready, stop_with_rtc}; | 13 | use embassy_stm32::low_power::{Executor, StopMode, reconfigure_rtc, stop_ready}; |
| 14 | use embassy_stm32::rcc::LsConfig; | 14 | use embassy_stm32::rcc::LsConfig; |
| 15 | use embassy_stm32::rtc::{Rtc, RtcConfig}; | ||
| 16 | use embassy_time::Timer; | 15 | use 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()); |
