From 0b93001f4f1391a8389a25d0dccddfe69c3d31d0 Mon Sep 17 00:00:00 2001 From: xqyjlj Date: Wed, 26 Jul 2023 14:51:03 +0800 Subject: 🐞 fix(rtc/soft_rtc): fix wrong time MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit use boottime as soft_rtc time source --- components/drivers/rtc/soft_rtc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'components') diff --git a/components/drivers/rtc/soft_rtc.c b/components/drivers/rtc/soft_rtc.c index ec74b7e372..68e400a684 100644 --- a/components/drivers/rtc/soft_rtc.c +++ b/components/drivers/rtc/soft_rtc.c @@ -134,7 +134,7 @@ static rt_err_t soft_rtc_control(rt_device_t dev, int cmd, void *args) case RT_DEVICE_CTRL_RTC_GET_TIMEVAL: tv = (struct timeval *)args; rt_ktime_boottime_get_us(&_tv); - tv->tv_sec = init_time + (rt_tick_get() - init_tick) / RT_TICK_PER_SECOND; + tv->tv_sec = init_time + _tv.tv_sec; tv->tv_usec = init_tv.tv_usec + _tv.tv_usec; break; case RT_DEVICE_CTRL_RTC_SET_TIMEVAL: @@ -147,7 +147,7 @@ static rt_err_t soft_rtc_control(rt_device_t dev, int cmd, void *args) case RT_DEVICE_CTRL_RTC_GET_TIMESPEC: ts = (struct timespec *)args; rt_ktime_boottime_get_ns(&_ts); - ts->tv_sec = init_time + (rt_tick_get() - init_tick) / RT_TICK_PER_SECOND; + ts->tv_sec = init_time + _ts.tv_sec; ts->tv_nsec = init_ts.tv_nsec + _ts.tv_nsec; break; case RT_DEVICE_CTRL_RTC_SET_TIMESPEC: -- cgit v1.3.1