From 11211be9b9b823c73c20b5b419e3ff7b82b48e3e Mon Sep 17 00:00:00 2001 From: BlackMark Date: Sat, 16 May 2020 17:25:00 +0200 Subject: [PATCH] Implement setting date-time --- ds3231.hpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/ds3231.hpp b/ds3231.hpp index e217673..32d5101 100644 --- a/ds3231.hpp +++ b/ds3231.hpp @@ -113,7 +113,24 @@ class DS3231 { writePartialRegister(timeReg); } - static void setDateTime(const DateTime &dateTime) {} + static void setDateTime(const DateTime &dateTime) + { + detail::TimeReg timeReg; + timeReg.setYear(dateTime.year); + timeReg.setMonth(dateTime.month); + timeReg.setDate(dateTime.day); + if constexpr (SetDayOfWeek) + timeReg.setDay(calcDayOfWeek(dateTime.year, dateTime.month, dateTime.day) + 1); + + timeReg.setHours(dateTime.hour); + timeReg.setMinutes(dateTime.minute); + timeReg.setSeconds(dateTime.second); + + constexpr auto START_OFFSET = offsetof(detail::TimeReg, seconds); + constexpr auto END_OFFSET = offsetof(detail::TimeReg, year); + + writePartialRegister(timeReg); + } private: template