From 8a7babadda7008f1f057dd373e32294482012a6e Mon Sep 17 00:00:00 2001 From: tyx <462747508@qq.com> Date: Mon, 4 Apr 2022 23:41:13 +0800 Subject: [PATCH] [drivers][rtc]Add get/set timestamp function --- components/drivers/include/drivers/rtc.h | 2 ++ components/drivers/rtc/rtc.c | 43 ++++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/components/drivers/include/drivers/rtc.h b/components/drivers/include/drivers/rtc.h index 356c97365b..1ffce59f5a 100644 --- a/components/drivers/include/drivers/rtc.h +++ b/components/drivers/include/drivers/rtc.h @@ -51,6 +51,8 @@ rt_err_t rt_hw_rtc_register(rt_rtc_dev_t *rtc, rt_err_t set_date(rt_uint32_t year, rt_uint32_t month, rt_uint32_t day); rt_err_t set_time(rt_uint32_t hour, rt_uint32_t minute, rt_uint32_t second); +rt_err_t set_timestamp(time_t timestamp); +rt_err_t get_timestamp(time_t *timestamp); #ifdef __cplusplus } diff --git a/components/drivers/rtc/rtc.c b/components/drivers/rtc/rtc.c index cd1d861939..85e5c75020 100644 --- a/components/drivers/rtc/rtc.c +++ b/components/drivers/rtc/rtc.c @@ -228,6 +228,49 @@ rt_err_t set_time(rt_uint32_t hour, rt_uint32_t minute, rt_uint32_t second) return ret; } +/** + * Set timestamp(utc). + * + * @param time_t timestamp + * + * @return rt_err_t if set success, return RT_EOK. + */ +rt_err_t set_timestamp(time_t timestamp) +{ + if (_rtc_device == RT_NULL) + { + _rtc_device = rt_device_find("rtc"); + if (_rtc_device == RT_NULL) + { + return -RT_ERROR; + } + } + + /* update to RTC device. */ + return rt_device_control(_rtc_device, RT_DEVICE_CTRL_RTC_SET_TIME, ×tamp); +} + +/** + * Get timestamp(utc). + * + * @param time_t* timestamp + * + * @return rt_err_t if set success, return RT_EOK. + */ +rt_err_t get_timestamp(time_t *timestamp) +{ + if (_rtc_device == RT_NULL) + { + _rtc_device = rt_device_find("rtc"); + if (_rtc_device == RT_NULL) + { + return -RT_ERROR; + } + } + + /* Get timestamp from RTC device. */ + return rt_device_control(_rtc_device, RT_DEVICE_CTRL_RTC_GET_TIME, timestamp); +} #ifdef RT_USING_FINSH #include