aboutsummaryrefslogtreecommitdiff
path: root/examples/rp/src/bin/rtc.rs
diff options
context:
space:
mode:
authorHenrik Berg <[email protected]>2023-07-12 15:16:56 +0200
committerHenrik Berg <[email protected]>2023-07-12 15:16:56 +0200
commit6d402fe3932ac04ff939379e6520322476f683dc (patch)
treebee3cccfc32f3e426ee12fe55984e7d9aa392ed0 /examples/rp/src/bin/rtc.rs
parent466a391b52836f79fafad5780ad2eb0a07d82513 (diff)
RP: Don't reset RTC in Clock::init. Updated example.
Diffstat (limited to 'examples/rp/src/bin/rtc.rs')
-rw-r--r--examples/rp/src/bin/rtc.rs26
1 files changed, 9 insertions, 17 deletions
diff --git a/examples/rp/src/bin/rtc.rs b/examples/rp/src/bin/rtc.rs
index 2ddde3257..d569f598f 100644
--- a/examples/rp/src/bin/rtc.rs
+++ b/examples/rp/src/bin/rtc.rs
@@ -4,7 +4,6 @@
4 4
5use defmt::*; 5use defmt::*;
6use embassy_executor::Spawner; 6use embassy_executor::Spawner;
7use embassy_rp::pac::rtc::regs::{Rtc0, Rtc1};
8use embassy_rp::rtc::{DateTime, DayOfWeek, Rtc}; 7use embassy_rp::rtc::{DateTime, DayOfWeek, Rtc};
9use embassy_time::{Duration, Timer}; 8use embassy_time::{Duration, Timer};
10use {defmt_rtt as _, panic_probe as _}; 9use {defmt_rtt as _, panic_probe as _};
@@ -14,22 +13,18 @@ async fn main(_spawner: Spawner) {
14 let p = embassy_rp::init(Default::default()); 13 let p = embassy_rp::init(Default::default());
15 info!("Wait for 20s"); 14 info!("Wait for 20s");
16 15
17 let mut watchdog = embassy_rp::watchdog::Watchdog::new(p.WATCHDOG);
18 let mut rtc = Rtc::new(p.RTC); 16 let mut rtc = Rtc::new(p.RTC);
19 17
20 let rtc0 = Rtc0(watchdog.get_scratch0()); 18 if !rtc.is_running() {
21 let rtc1 = Rtc1(watchdog.get_scratch1()); 19 info!("Start RTC");
22 if rtc1.year() >= 2020 {
23 rtc.restore(rtc1, rtc0);
24 } else {
25 let now = DateTime { 20 let now = DateTime {
26 year: 2020, 21 year: 2000,
27 month: 5, 22 month: 1,
28 day: 15, 23 day: 1,
29 day_of_week: DayOfWeek::Monday, 24 day_of_week: DayOfWeek::Saturday,
30 hour: 10, 25 hour: 0,
31 minute: 30, 26 minute: 0,
32 second: 50, 27 second: 0,
33 }; 28 };
34 rtc.set_datetime(now).unwrap(); 29 rtc.set_datetime(now).unwrap();
35 } 30 }
@@ -41,9 +36,6 @@ async fn main(_spawner: Spawner) {
41 "Now: {}-{:02}-{:02} {}:{:02}:{:02}", 36 "Now: {}-{:02}-{:02} {}:{:02}:{:02}",
42 dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, 37 dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second,
43 ); 38 );
44 let (rtc1, rtc0) = rtc.save();
45 watchdog.set_scratch0(rtc0.0);
46 watchdog.set_scratch1(rtc1.0);
47 } 39 }
48 40
49 info!("Reboot."); 41 info!("Reboot.");