【平头哥RVB2601创意应用开发】+RTC电子时钟
[复制链接]
RTC是一种重要的实时时钟计时器,用它可以辅助数据采集时间的标记。此外,它还能方便地实现电子时钟的制作,图1就是它的运行效果。
图1 电子时钟
在设计过程中,主要涉及的头文件有:stdio.h、soc.h及rtc.h。
所涉及的RTC函数主要有:RTC初始化函数csi_rtc_init)、RTC数据值设置函数及RTC时间获取函数csi_rtc_get_time()。
实现显示效果的主程序为:
int main(void)
{
csi_error_t ret;
csi_rtc_time_t last_time, base_time, alarm_time;
board_yoc_init();
LOGD(TAG, "%s\n", aos_get_app_version());
oled_init();
led_pinmux_init();
oled_pinmux_init();
OLED_Init();
OLED_Clear();
OLED_ShowString(20,0,"CH2601",16);
OLED_ShowString(20,2,"OLED & RTC",16);
OLED_ShowString(20,4," : : ",16);
ret = 0;
ret = csi_rtc_init(&g_rtc, 0);
CHECK_RETURN(ret);
base_time.tm_year = 122;
base_time.tm_mon = 4;
base_time.tm_mday = 10;
base_time.tm_hour = 23;
base_time.tm_min = 59;
base_time.tm_sec = 55;
ret = csi_rtc_set_time(&g_rtc, &base_time);
CHECK_RETURN(ret);
while (1) {
led_refresh();
csi_rtc_get_time(&g_rtc, &last_time);
OLED_ShowNum(20,4,last_time.tm_hour,2,16);
OLED_ShowNum(44,4,last_time.tm_min,2,16);
OLED_ShowNum(68,4,last_time.tm_sec,2,16);
udelay(1000 * 500);
}
return 0;
}
在RTC的时间设置方面比较有特点,其参数取值范围如图2所示。
图2 参数取值范围
在时间参数按如下内容设置时,其运行效果如图3所示。
base_time.tm_year = 122;
base_time.tm_mon = 4;
base_time.tm_mday = 11;
base_time.tm_hour = 0;
base_time.tm_min = 0;
base_time.tm_sec = 0;
图3 计时效果
|