这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 软件与操作系统 » 野火启明6M5适配RTC

共2条 1/1 1 跳转至

野火启明6M5适配RTC

工程师
2025-01-25 20:41:19     打赏

       驱动看完了,剩下的就是适配RTC驱动了,从分析的驱动上看,我们需要做两个事,一个是注册一个g_rtc的设备,二是在注册的设备中注册rtc_callback的回调函数。

设备注册

    还是老套路,直接从stacks中开始操作。

       以上操作执行完毕后,点击Generate Project Content生成工程后保存即可。

选开RTC功能

2.jpg

    选择完成后运行scons --target=mdk5生成新工程

代码编写

    代码上就直接拷贝了RTT论坛上的RTC测试代码,那份测试代码仅仅是设置了RTC时钟,并延时3s读取RTC时间。我们可以使用测试代码初始化RTC后,隔一段时间读一下date状态便能确认RTC是否跑起来。

#define RTC_NAME       "rtc"

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)
    {
      rt_kprintf("find %s failed!", RTC_NAME);
      return RT_ERROR;
    }

    /*初始化RTC设备*/
    if(rt_device_open(device, 0) != RT_EOK)
    {
      rt_kprintf("open %s failed!", RTC_NAME);
      return RT_ERROR;
    }

    /* 设置日期 */
    ret = set_date(2018, 12, 3);
    if (ret != RT_EOK)
    {
        rt_kprintf("set RTC date failed\n");
        return ret;
    }

    /* 设置时间 */
    ret = set_time(11, 15, 50);
    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(rtc_sample, rtc sample);

结果验证

\ | /
- RT -     Thread Operating System
 / | \     5.2.0 build Jan 23 2025 00:19:14
 2006 - 2024 Copyright by RT-Thread team

Hello RT-Thread!
msh >rt
rtc_sample
msh >rtc_sample
Mon Dec  3 11:15:53 2018

msh >date
date
msh >date
local time: Mon Dec  3 11:15:59 2018
timestamps: 1543806959
timezone: UTC+08:00:00
msh >date
local time: Mon Dec  3 11:16:09 2018
timestamps: 1543806969
timezone: UTC+08:00:00
msh >
 \ | /
- RT -     Thread Operating System
 / | \     5.2.0 build Jan 23 2025 00:19:14
 2006 - 2024 Copyright by RT-Thread team

Hello RT-Thread!
msh >date
date
msh >date
local time: Mon Dec  3 11:16:21 2018
timestamps: 1543806959
timezone: UTC+08:00:00

    从结果上看RTC已经跑起来了,而且我第二次敲date命令时有刻意得计时10s再去按回车,可以发现时间还是准的 ,另外,按rst键重启板卡,可以发现RTC模块还是在跑的,说明硬件RTC适配完成。




关键词: 瑞萨     RTC     适配     驱动     启明6m5    

院士
2025-01-26 16:01:59     打赏
2楼

谢谢楼主的完整分享。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]