打印
[国产单片机]

复旦微MCU FM33A0XX RTC调试心得,其他MCU也适用哦

[复制链接]
3072|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
    最近在操作复旦微的CORTEX-M0 FM33A048的时候,需要用外部32K时钟,实现时中断使能,闹钟中断使能,秒中断等其他中断禁止。但调试中遇到每秒都会产生秒中断,无法禁止。经过调试发现,RTC初始化函数没什么问题,问题应该出在RTC服务函数的处理上,中断的产生首先是总中断要打开,然后相应的中断要开启,第三要中断标志位要置起,当有多个中断源使用同一个中断入口的时候,只用if(SET == RTC_RTCIF_ChkEx(RTC_RTCIE_SEC_IE_Msk))这么判断秒中断标志位是不准确的,这个条件成立了,但是不一定是这个中断;
附件的例程实现了初始时间是01时59分55秒,到02时0分0秒的时候会产生时中断,到2时0分5秒的时候会产生闹钟中断;另外如果遇到第一次秒中断,后面就没了,需要检查下RTC初始化的时候是否先开了所以中断,再关掉所有中断,其实完全不用先开,直接关掉所有中断,后面需要用到什么中断再开什么中断就可以了,否则会出现第一次会进去中断的情况~
    以上调试心得分享给大家,希望可以帮助有同样问题的贴友!

RTC_Test.zip

1.54 MB

评论
15061520561 2018-8-18 21:21 回复TA
楼主很用心嘛 
zhangyanlu 2018-8-18 21:15 回复TA
不错 
18762651615 2018-8-18 10:32 回复TA
对于不想下载代码的贴友,可以直接看这条回复,即增加一个判断相应的秒中断是否开启的条件,if((SET == RTC_RTCIF_ChkEx(RTC_RTCIE_SEC_IE_Msk)) && (RTC->RTCIE & RTC_RTCIE_SEC_IE_Msk) ),而非单单判断秒中断标志if(SET == RTC_RTCIF_ChkEx(RTC_RTCIE_SEC_IE_Msk)) 

相关帖子

沙发
19821763562| | 2019-10-17 10:59 | 只看该作者
http://www.fmdevelopers.com.cn

使用特权

评论回复
板凳
19821763562| | 2019-10-17 11:00 | 只看该作者
19821763562 发表于 2019-10-17 10:59
http://www.fmdevelopers.com.cn

欢迎访问复旦微开发者论坛,了解更多MCU产品知识

使用特权

评论回复
地板
yangbeioften| | 2019-11-30 22:07 | 只看该作者
怎么买这款单片机,没搜到

使用特权

评论回复
评论
19821763562 2019-12-3 16:55 回复TA
可以联系1012327173 
5
19821763562| | 2019-12-3 16:56 | 只看该作者
yangbeioften 发表于 2019-11-30 22:07
怎么买这款单片机,没搜到

可以关注复旦微MCU微信公众号

12.jpg (22.94 KB )

12.jpg

使用特权

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

本版积分规则

9

主题

51

帖子

2

粉丝