找回密码
 立即注册
楼主: ZhangChYu

有没有内部RTC的例程

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:11
  • 最近打卡:2025-03-27 08:29:56

22

主题

58

回帖

329

积分

中级会员

积分
329
发表于 2024-5-31 08:59:28 | 显示全部楼层
乘风*** 发表于 2024-5-30 17:28
RTC的中断可以唤醒休眠状态。
printf函数 %bd 就是将数据以十进制格式输出,用文本模式就可以正常显示。 ...

还有 进入休眠 这个RTC好像不会跑 这个大概会增加多少静态电流
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6845

积分

论坛元老

积分
6845
发表于 2024-5-31 09:14:35 | 显示全部楼层
Zhang*** 发表于 2024-5-31 08:59
还有 进入休眠 这个RTC好像不会跑 这个大概会增加多少静态电流

除了掉电唤醒定时器外,其他所有唤醒方式都是靠中断,一旦关闭中断就失去唤醒功能。
进入休眠RTC会继续工作,规格书RTC章节有介绍,开启RTC低功耗状态下,单片机工作电流也就2~3uA:
截图202405310905408546.jpg

至于数据格式,范例程序里面有介绍一种将数据以十进制方式显示的方法:
截图202405310911013282.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:11
  • 最近打卡:2025-03-27 08:29:56

22

主题

58

回帖

329

积分

中级会员

积分
329
发表于 2024-5-31 09:25:25 | 显示全部楼层
乘风*** 发表于 2024-5-31 09:14
除了掉电唤醒定时器外,其他所有唤醒方式都是靠中断,一旦关闭中断就失去唤醒功能。
进入休眠RTC会继续工 ...

    P_SW2 |= 0x80;
    //选择内部低速IRC
    IRC32KCR = 0x80;                                                               //启动内部低速振荡器
    while (!(IRC32KCR & 0x01));                                                     //等待时钟稳定
    RTCCFG |= 0x02;                                                                //选择内部低速IRC作为RTC时钟源
   
    INIYEAR= 24;                                                                            //Y:2021
    INIMONTH= 01;                                                                        //M:12
    INIDAY= 01;                                                                               //D:31
    INIHOUR= 8;                                                                           //H:23
    INIMIN= 0;                                                                               //M:59
    INISEC= 0;                                                                               //S:50
    INISSEC= 0;                                                                               //S/128:0
    RTCCFG|= 0x01;                                                                        //触发RTC寄存器初始化
    RTCIF= 0;                                                                                   //清中断标志
    RTCIEN = 0x10;                                                                          //使能RTC分钟中断
    RTCCR= 0x01;                                                                            // RTC使能


是复位了 好像是看门狗复位 2S时间应该不至于 进入大循环前加了这个就会
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:504
  • 最近打卡:2025-05-03 07:29:10
已绑定手机

1

主题

836

回帖

1455

积分

金牌会员

积分
1455
发表于 2024-5-31 10:00:23 | 显示全部楼层
感谢分享
靡不有初,鲜克有终
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6845

积分

论坛元老

积分
6845
发表于 2024-5-31 13:13:56 | 显示全部楼层
Zhang*** 发表于 2024-5-31 09:25
P_SW2 |= 0x80;
    //选择内部低速IRC
    IRC32KCR = 0x80;                                      ...

RTC中断函数写了吗?
如果是借用13号中断向量的话,中断映射程序 isr.asm 文件是否加载到项目里了?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:11
  • 最近打卡:2025-03-27 08:29:56

22

主题

58

回帖

329

积分

中级会员

积分
329
发表于 2024-5-31 15:48:50 | 显示全部楼层
乘风*** 发表于 2024-5-31 13:13
RTC中断函数写了吗?
如果是借用13号中断向量的话,中断映射程序 isr.asm 文件是否加载到项目里了? ...

写了的 也有清中断
    if( (RTCIF&0x08) )
    {
        /*  RTC中断 */
        RTCIF &= ~0x08;

昨天还不会复位  今天就一致会
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:11
  • 最近打卡:2025-03-27 08:29:56

22

主题

58

回帖

329

积分

中级会员

积分
329
发表于 2024-5-31 15:54:35 | 显示全部楼层
乘风*** 发表于 2024-5-31 13:13
RTC中断函数写了吗?
如果是借用13号中断向量的话,中断映射程序 isr.asm 文件是否加载到项目里了? ...

关掉RTC中断也会复位
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6845

积分

论坛元老

积分
6845
发表于 2024-5-31 15:57:07 | 显示全部楼层
本帖最后由 乘风飞扬 于 2024-5-31 15:58 编辑
Zhang*** 发表于 2024-5-31 15:54
关掉RTC中断也会复位

用硬件仿真查一下程序,实在找不到问题的话,就提供最简的可以复现问题的完整项目。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-4 05:54 , Processed in 0.179775 second(s), 92 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表