介紹
RTC (Real-Time Clock)實時時鐘可以提供精確的實時時間,它可以用于產生年、月、日、時、分、秒等信息。目前實時時鐘芯片大多采用精度較高的晶體振蕩器作為時鐘源。有些時鐘芯片為了在主電源掉電時還可以工作,會外加電池供電,使時間信息一直保持有效。
RT-Thread 的 RTC設備為操作系統的時間系統提供了基礎服務。面對越來越多的 IoT 場景,RTC 已經成為產品的標配,甚至在諸如 SSL 的安全傳輸過程中,RTC 已經成為不可或缺的部分。
步驟
首先啟用軟件模擬 RTC:
然后我們在 main.c 中加入如下內容:
#define RTC_NAME "rtc"
#include
static int rtc_sample(int argc, char argv[])
{
rt_err_t ret = RT_EOK;
time_t now;
rt_device_t device = RT_NULL;
/ 尋找設備 /
device = rt_device_find(RTC_NAME);
if (!device)
{
LOG_E("find %s failed!", RTC_NAME);
return RT_ERROR;
}
/ 初始化RTC設備 /
if(rt_device_open(device, 0) != RT_EOK)
{
LOG_E("open %s failed!", RTC_NAME);
return RT_ERROR;
}
/ 設置日期 /
ret = set_date(2018, 12, 3);
if (ret != RT_EOK)
{
rt_kprintf("set RTC date failedn");
return ret;
}
/ 設置時間 /
ret = set_time(11, 15, 50);
if (ret != RT_EOK)
{
rt_kprintf("set RTC time failedn");
return ret;
}
/ 延時3秒 /
rt_thread_mdelay(3000);
/ 獲取時間 /
now = time(RT_NULL);
rt_kprintf("%sn", ctime(&now));
return ret;
}
/ 導出到 msh 命令列表中 */
MSH_CMD_EXPORT(rtc_sample, rtc sample);
代碼解讀:首先設置了年月日時分秒信息為2018年12月3日11:15:50,然后延時 3 秒后獲取當前時間信息,應當顯示2018年12月3日11:15:53。
編譯下載運行:
-
實時時鐘
+關注
關注
4文章
240瀏覽量
65701 -
晶體振蕩器
+關注
關注
9文章
616瀏覽量
29062 -
電池供電
+關注
關注
0文章
253瀏覽量
22137 -
RTC
+關注
關注
2文章
530瀏覽量
66334 -
ART-Pi
+關注
關注
0文章
23瀏覽量
1285
發布評論請先 登錄
相關推薦
評論