Implement setting RTC date

This commit is contained in:
BlackMark 2020-05-16 17:03:30 +02:00
parent 92096b6101
commit cd5317db5b

View File

@ -2,6 +2,8 @@
#include "../clock.hpp"
#include <stddef.h>
#include "../i2c/i2c.hpp"
#include "../type/type.hpp"
@ -85,7 +87,19 @@ class DS3231 {
return dateTime;
}
static void setDate(const Date &date) {}
static void setDate(const Date &date)
{
detail::TimeReg timeReg;
timeReg.setYear(date.year);
timeReg.setMonth(date.month);
timeReg.setDate(date.day);
if constexpr (SetDayOfWeek) {
timeReg.setDay(calcDayOfWeek(date.year, date.month, date.day) + 1);
}
constexpr auto DATE_OFFSET = offsetof(detail::TimeReg, day);
writePartialRegister<TIME_REG_ADDR, DATE_OFFSET>(timeReg);
}
static void setTime(const Time &time) {}
static void setDateTime(const DateTime &dateTime) {}