raspberrypi: RTC: Ensure a time is set

Until a time is set, the RTC is not running, and rtc_get_datetime()
returns false without assigning to the out-parameter.

In CircuitPython, this would manifest as arbitrary values being returned,
since uninitialized storage on the stack was being converted into a timestamp.
This commit is contained in:
Jeff Epler 2021-03-10 16:46:42 -06:00
parent be9e045ee3
commit 16bfe3b41c
1 changed files with 14 additions and 0 deletions

View File

@ -29,9 +29,23 @@
#include "py/runtime.h"
#include "src/rp2_common/hardware_rtc/include/hardware/rtc.h"
#include "src/rp2_common/hardware_clocks/include/hardware/clocks.h"
void common_hal_rtc_init(void) {
datetime_t t = {
.year = 2020,
.month = 1,
.day = 1,
.dotw = 3, // 0 is Sunday, so 3 is Wednesday
.hour = 0,
.min = 0,
.sec = 0
};
// Start the RTC
rtc_init();
rtc_set_datetime(&t);
}
void common_hal_rtc_get_time(timeutils_struct_time_t *tm) {