Syscalls: Use RTC sub second for more accurate time.

Signed-off-by: Yilin Sun <imi415@imi.moe>
This commit is contained in:
Yilin Sun 2023-03-09 00:03:47 +08:00
parent 014fe762ef
commit b601b8a036
Signed by: imi415
GPG Key ID: 17F01E106F9F5E0A
1 changed files with 4 additions and 1 deletions

View File

@ -140,6 +140,9 @@ static int app_rtc_time_init(void) {
RTC_EnableTimer(RTC, true);
RTC_EnableWakeupTimer(RTC, true);
/* Enable sub second counter */
RTC->CTRL |= RTC_CTRL_RTC_SUBSEC_ENA_MASK;
CLOCK_SetRtc1hzClkDiv(32768U);
uint32_t rtc_sec = RTC_GetSecondsTimerCount(RTC);
@ -273,7 +276,7 @@ int _fstat(int file, struct stat *st) {
int _gettimeofday(struct timeval *ptimeval, void *ptimezone) {
ptimeval->tv_sec = APP_TIME_RTC_OFFSET_EPOCH + RTC_GetSecondsTimerCount(RTC);
ptimeval->tv_usec = 0ULL;
ptimeval->tv_usec = RTC->SUBSEC * 1000000 / 32768;
return 0;
}