打印
[学习笔记]

AC781x RTC模块学习笔记

[复制链接]
5565|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 RunningX 于 2019-8-6 21:16 编辑

  简介
实时计数器(RTC)由一个32位计数器、一个32位比较器、若干个基于二进制和基于十进制的预分频器、四个时钟源、一个可编程周期性中断和一个可编程外部脉冲输出组成。此模块可用于计时,日历或任何任务调度功能。它还能充当循环唤醒,将器件从停止(stop)模式和等待(standby)模式中唤醒且无需外部组件。
备份寄存器(BKP)是两个32位寄存器,用于存储8字节的用户应用程序数据。它们在VDD域中实现。系统复位或设备从待机(standby)模数唤醒时,不会复位。仅在可以上电复位(POR)复位;入侵检测事件(Temper)复位

  RTC,BKP特性
1.    32位向上计数器(32位模数寄存器,软件可控制的周期性定时中断);
2.    可编程20位预分频器,可由软件选择时钟源(总线时钟,LSI(32KHz),外部XOSC时钟,内部HIS时钟(8MHz));

3.    备用寄存器入侵检测(1个边沿触发的入侵事件检测,2个备用寄存器(8个字节));

存储器映像和寄存器定义


详细的学习笔记代码,可参考附件,查阅查阅《AC781X RTC、BKP模块应用笔记》,通过配置RTC_SAMPLE_SELECT来实现不同的RTC功能:
功能1:配置RTC计时1S,控制LED2以0.5Hz频率闪烁;
功能2:配置RTC计时5S,按下K6按键进入休眠后,RTC可以定时唤醒
功能3:使用BKP寄存器,使能Temper入侵检测事件复位BKP寄存器


rtc_sample.rar (164.12 KB)





使用特权

评论回复

相关帖子

沙发
fanchenxinok| | 2021-7-28 14:57 | 只看该作者
楼主你好,可以用RTC用GPIO模拟实现80HZ的clock吗

使用特权

评论回复
板凳
RunningX|  楼主 | 2021-7-28 15:01 | 只看该作者
fanchenxinok 发表于 2021-7-28 14:57
楼主你好,可以用RTC用GPIO模拟实现80HZ的clock吗

可以,如果固定是80Hz,用PWM模块输出80Hz更方便吧

使用特权

评论回复
评论
fanchenxinok 2021-7-29 11:05 回复TA
@RunningX :我将RTC中断优先级调最高了,还是不行 NVIC_SetPriority(RTC_IRQn, 0); 效果如图所示。 
RunningX 2021-7-29 10:43 回复TA
@fanchenxinok :https://bbs.21ic.com/icview-2876176-1-1.html参考这个帖子 
fanchenxinok 2021-7-29 10:18 回复TA
@RunningX :是调整中断向量表的顺序? 
fanchenxinok 2021-7-29 09:58 回复TA
@RunningX :是的 现在就是在中断回调函数里做gpio翻转,RTC中断优先级怎么调整? 
RunningX 2021-7-28 17:56 回复TA
@fanchenxinok :RTC输出GPIO的话,在中断里面进行IO口翻转,把中断优先级调成最高,应该不会有问题 
fanchenxinok 2021-7-28 16:31 回复TA
用gpio模拟的clock并不完美,脉冲有宽有窄 头疼 
fanchenxinok 2021-7-28 15:05 回复TA
管脚的PWM和其他管脚的PWM是同一组,频率不能改,不能是80HZ 所以考虑用RTC 
地板
fanchenxinok| | 2021-7-29 11:06 | 只看该作者
RunningX 发表于 2021-7-28 15:01
可以,如果固定是80Hz,用PWM模块输出80Hz更方便吧

图片在此

微信图片_20210729110706.jpg (190.07 KB )

微信图片_20210729110706.jpg

使用特权

评论回复
5
RunningX|  楼主 | 2021-7-29 11:36 | 只看该作者

异常是指中间空掉的那一段吗?这个不应该啊。你把其他代码都去掉,只配置这个RTC跟IO口翻转试试

使用特权

评论回复
评论
fanchenxinok 2021-7-29 14:32 回复TA
楼主 找到原因了 是因为我在can中断函数中加了打印造成的, 谢谢 
6
fanchenxinok| | 2021-7-29 13:51 | 只看该作者
本帖最后由 fanchenxinok 于 2021-7-29 14:32 编辑
RunningX 发表于 2021-7-29 11:36
异常是指中间空掉的那一段吗?这个不应该啊。你把其他代码都去掉,只配置这个RTC跟IO口翻转试试 ...

不跑其他代码波形是没问题的,我发现是can引起的,PC每隔一秒发送报文就会出现波形缺失这种情况
楼主 找到原因了 是因为我在can中断函数中加了打印造成的, 谢谢

使用特权

评论回复
7
RunningX|  楼主 | 2021-7-30 09:28 | 只看该作者
fanchenxinok 发表于 2021-7-29 13:51
不跑其他代码波形是没问题的,我发现是can引起的,PC每隔一秒发送报文就会出现波形缺失这种情况
楼主 找到 ...

好的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

223

帖子

4

粉丝