760|3

253

帖子

0

资源

一粒金砂(高级)

[RTT&瑞萨高性能 CPK-RA6M4] 7、RT-Thread之RTC评测 [复制链接]

一、硬件部分

RTC (Real-Time Clock)是内部实时时钟,基本不涉及外部管脚,可以提供精确的实时时间,用于产生年、月、日、时、分、秒等信息。实时时钟芯片大多采用精度较高的晶体振荡器作为时钟源。

由于信息输出的需要,还是采用串口输出的方式,打印信息,因此用到了usart7作为调试信息的输出,涉及的管脚为P613和P614.

image.png  二、软件部分

1、新建项目

基于开发板进行新建项目,选择模板工程,生成后直接打开项目

image.png  

2、FSP配置

新项目在使用RA Smart Configurator时,需要指定安装路径。然后打开RA Smart Configurator,在new stack中增加RTC

image.png 5e11524c20ba468c24d3548bd1d6fee.png  

 检查一下g_usart7的管脚P613和P614,然后点击右上角的Generate Project Content,生成配置。比较遗憾的是,每次RA Smart Configurator生成后,都需要手动复制board_cfg.h头文件。

3、RT Thread Settungs中设置

打开RT-Thread Setting,配置RTC相关的信息,图形界面中右键配置RTC,然后在组件选项中使能RTC

image.png

在硬件选项中同样使能RTC

image.png   Ctrl-S保存后更新配置信息

4、代码说明

在RT-Thread网站中,可以找到RTC相关的示例

image.png  适当修改后,新建rtc.c文件,放在src目录下

#include <rtthread.h>
#include <rtdevice.h>
#include <time.h>
static int set_datetime(int argc, char *argv[])
{
    rt_err_t ret = RT_EOK;
    //time_t now;

     if(argc != 6) {
         rt_kprintf("Usage:set_datetime 2022 06 18 21 57 00 \r\n");
     }
    /* 设置日期 */
    ret = set_date(atoi(argv[1]), atoi(argv[2]), atoi(argv[3]));
    if (ret != RT_EOK)
    {
        rt_kprintf("set RTC date failed\n");
        return ret;
    }

    /* 设置时间 */
    ret = set_time(atoi(argv[4]), atoi(argv[5]), atoi(argv[6]));
    if (ret != RT_EOK)
    {
        rt_kprintf("set RTC time failed\n");
        return ret;
    }

    /* 延时3秒 */
    //rt_thread_mdelay(3000);

    /* 获取时间 */
    //now = time(RT_NULL);
    //rt_kprintf("%s\n", ctime(&now));

    return ret;
}
/* 导出到 msh 命令列表中 */
MSH_CMD_EXPORT(set_datetime, rtc sample);

用于设定初始时间,使用方式为命令行输入set_datetime 2022 06 18 21 57 00

为了及时更新时间,在hal_entry.c中修改hal_entry函数

void hal_entry(void)
{
    time_t now;

    rt_kprintf("\nHello RT-Thread!\n");

    while (1)
    {
        rt_pin_write(LED3_PIN, PIN_HIGH);
        rt_thread_mdelay(500);
        rt_pin_write(LED3_PIN, PIN_LOW);
        rt_thread_mdelay(500);
        /* 获取时间 */
        now = time(RT_NULL);
        rt_kprintf("%s\n", ctime(&now));

    }

}

编译后下载至开发板,开启串口软件sscom

5、演示效果

复位开发板后在sscom中显示信息

0b5cd109f6e670fcea7839076ecc9d8.png  设置初始时间后,每间隔1秒打印当前时间

三、心得体会

对于RTT支持的设备来说,实现功能确实非常方便,甚至可以不写代码实现,非常方便和快捷,但是对于不直接支持的设备,还是比较麻烦的。RTC显然属于支持的设备,因此非常方便。

期待RTT加入更多的硬件支持和更多的设备支持!


回复

5381

帖子

18

资源

五彩晶圆(中级)

谢谢分享,期待后续!

个人签名

默认摸鱼


回复

1271

帖子

0

资源

版主

教程写的不错!


回复

1

帖子

0

资源

一粒金砂(初级)

谢谢分享,很有参考价值,mark一下,期待后续教程。。。


回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

最新文章 更多>>
    关闭
    站长推荐上一条 1/8 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表