Implement setting date-time
This commit is contained in:
parent
8c50aa4688
commit
11211be9b9
19
ds3231.hpp
19
ds3231.hpp
@ -113,7 +113,24 @@ class DS3231 {
|
|||||||
|
|
||||||
writePartialRegister<TIME_REG_ADDR, TIME_START_OFFSET, TIME_END_OFFSET>(timeReg);
|
writePartialRegister<TIME_REG_ADDR, TIME_START_OFFSET, TIME_END_OFFSET>(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<TIME_REG_ADDR, START_OFFSET, END_OFFSET>(timeReg);
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
template <uint8_t Address, typename Register>
|
template <uint8_t Address, typename Register>
|
||||||
|
Loading…
Reference in New Issue
Block a user