From 9702ad1523bd9a3109ac8ef887a3d63658138637 Mon Sep 17 00:00:00 2001 From: Jonathan 'theJPster' Pallant Date: Fri, 17 May 2024 20:28:07 +0100 Subject: [PATCH] Start the clock ticking. By default, the DS1307 comes with the clock halted, and we never told it to not be halted. --- src/rtc.rs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/rtc.rs b/src/rtc.rs index 9bc1662..2661ffa 100644 --- a/src/rtc.rs +++ b/src/rtc.rs @@ -139,14 +139,24 @@ impl Rtc { driver.set_datetime(&new_time).map_err(|e| match e { ds1307::Error::I2C(bus_error) => Error::Bus(bus_error), ds1307::Error::InvalidInputData => Error::DriverBug, - }) + })?; + driver.set_running().map_err(|e| match e { + ds1307::Error::I2C(bus_error) => Error::Bus(bus_error), + ds1307::Error::InvalidInputData => Error::DriverBug, + })?; + Ok(()) } Self::Mcp7940n => { let mut driver = mcp794xx::Mcp794xx::new_mcp7940n(bus); driver.set_datetime(&new_time).map_err(|e| match e { mcp794xx::Error::Comm(bus_error) => Error::Bus(bus_error), mcp794xx::Error::InvalidInputData => Error::DriverBug, - }) + })?; + driver.enable().map_err(|e| match e { + mcp794xx::Error::Comm(bus_error) => Error::Bus(bus_error), + mcp794xx::Error::InvalidInputData => Error::DriverBug, + })?; + Ok(()) } Self::None => Err(Error::NoRtcFound), }