diff options
Diffstat (limited to 'tests/stm32/src/bin/rtc.rs')
| -rw-r--r-- | tests/stm32/src/bin/rtc.rs | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/tests/stm32/src/bin/rtc.rs b/tests/stm32/src/bin/rtc.rs index 5fe98d807..eb27af4ca 100644 --- a/tests/stm32/src/bin/rtc.rs +++ b/tests/stm32/src/bin/rtc.rs | |||
| @@ -10,13 +10,19 @@ use common::*; | |||
| 10 | use defmt::assert; | 10 | use defmt::assert; |
| 11 | use embassy_executor::Spawner; | 11 | use embassy_executor::Spawner; |
| 12 | use embassy_stm32::rcc::LsConfig; | 12 | use embassy_stm32::rcc::LsConfig; |
| 13 | #[cfg(feature = "stop")] | ||
| 14 | use embassy_stm32::rtc::Rtc; | ||
| 15 | #[cfg(not(feature = "stop"))] | ||
| 13 | use embassy_stm32::rtc::{Rtc, RtcConfig}; | 16 | use embassy_stm32::rtc::{Rtc, RtcConfig}; |
| 14 | use embassy_time::Timer; | 17 | use embassy_time::Timer; |
| 15 | |||
| 16 | #[embassy_executor::main] | 18 | #[embassy_executor::main] |
| 17 | async fn main(_spawner: Spawner) { | 19 | async fn main(_spawner: Spawner) { |
| 18 | let mut config = config(); | 20 | let mut config = config(); |
| 19 | config.rcc.ls = LsConfig::default_lse(); | 21 | config.rcc.ls = LsConfig::default_lse(); |
| 22 | #[cfg(feature = "stop")] | ||
| 23 | { | ||
| 24 | config.rtc._disable_rtc = false; | ||
| 25 | } | ||
| 20 | 26 | ||
| 21 | let p = init_with_config(config); | 27 | let p = init_with_config(config); |
| 22 | info!("Hello World!"); | 28 | info!("Hello World!"); |
| @@ -26,14 +32,25 @@ async fn main(_spawner: Spawner) { | |||
| 26 | .and_hms_opt(10, 30, 15) | 32 | .and_hms_opt(10, 30, 15) |
| 27 | .unwrap(); | 33 | .unwrap(); |
| 28 | 34 | ||
| 29 | let mut rtc = Rtc::new(p.RTC, RtcConfig::default()); | 35 | #[cfg(not(feature = "stop"))] |
| 36 | let (mut rtc, time_provider) = Rtc::new(p.RTC, RtcConfig::default()); | ||
| 37 | |||
| 38 | #[cfg(feature = "stop")] | ||
| 39 | let (rtc, time_provider) = Rtc::new(p.RTC); | ||
| 30 | 40 | ||
| 41 | #[cfg(not(feature = "stop"))] | ||
| 31 | rtc.set_datetime(now.into()).expect("datetime not set"); | 42 | rtc.set_datetime(now.into()).expect("datetime not set"); |
| 32 | 43 | ||
| 44 | #[cfg(feature = "stop")] | ||
| 45 | critical_section::with(|cs| { | ||
| 46 | rtc.borrow_mut(cs).set_datetime(now.into()).expect("datetime not set"); | ||
| 47 | }); | ||
| 48 | |||
| 33 | info!("Waiting 5 seconds"); | 49 | info!("Waiting 5 seconds"); |
| 34 | Timer::after_millis(5000).await; | 50 | Timer::after_millis(5000).await; |
| 35 | 51 | ||
| 36 | let then: NaiveDateTime = rtc.now().unwrap().into(); | 52 | let then: NaiveDateTime = time_provider.now().unwrap().into(); |
| 53 | |||
| 37 | let seconds = (then - now).num_seconds(); | 54 | let seconds = (then - now).num_seconds(); |
| 38 | 55 | ||
| 39 | info!("measured = {}", seconds); | 56 | info!("measured = {}", seconds); |
