jinglixixi 发表于 2022-5-11 00:26

【平头哥RVB2601创意应用开发】+RTC电子时钟

<p align="left" style="text-align:left">RTC是一种重要的实时时钟计时器,用它可以辅助数据采集时间的标记。此外,它还能方便地实现电子时钟的制作,图1就是它的运行效果。</p>

<p>图1 电子时钟</p>

<p>在设计过程中,主要涉及的头文件有:stdio.h、soc.h及rtc.h。</p>

<p>所涉及的RTC函数主要有:RTC初始化函数csi_rtc_init)、RTC数据值设置函数及RTC时间获取函数csi_rtc_get_time()。</p>

<p>实现显示效果的主程序为:</p>

<pre>
<code class="language-cpp">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 &amp; RTC",16);
    OLED_ShowString(20,4,"  :  :  ",16);
    ret = 0;
    ret = csi_rtc_init(&amp;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(&amp;g_rtc, &amp;base_time);
    CHECK_RETURN(ret);
    while (1) {
        led_refresh();
        csi_rtc_get_time(&amp;g_rtc, &amp;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;
}</code></pre>

<p>在RTC的时间设置方面比较有特点,其参数取值范围如图2所示。</p>

<p> &nbsp;</p>

<p>图2 参数取值范围</p>

<p>&nbsp;</p>

<p>在时间参数按如下内容设置时,其运行效果如图3所示。</p>

<p>&nbsp;&nbsp;&nbsp; base_time.tm_year&nbsp;&nbsp;&nbsp; = 122;</p>

<p>&nbsp;&nbsp;&nbsp; base_time.tm_mon&nbsp;&nbsp;&nbsp;&nbsp; = 4;</p>

<p>&nbsp;&nbsp;&nbsp; base_time.tm_mday&nbsp;&nbsp;&nbsp; = 11;</p>

<p>&nbsp;&nbsp;&nbsp; base_time.tm_hour&nbsp;&nbsp;&nbsp; = 0;</p>

<p>&nbsp;&nbsp;&nbsp; base_time.tm_min&nbsp;&nbsp;&nbsp;&nbsp; = 0;</p>

<p>&nbsp;&nbsp;&nbsp; base_time.tm_sec&nbsp;&nbsp;&nbsp;&nbsp; = 0;</p>

<p>图3 计时效果</p>

lugl4313820 发表于 2022-5-11 07:01

兄弟呀,这么晚还在交作业,别把自己身体搞跨了!

jinglixixi 发表于 2022-5-11 09:47

lugl4313820 发表于 2022-5-11 07:01
兄弟呀,这么晚还在交作业,别把自己身体搞跨了!

<p>尽量吧,否则也被催呀!</p>
页: [1]
查看完整版本: 【平头哥RVB2601创意应用开发】+RTC电子时钟