7328|3

6

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

stm32的rtc alarm中断的触发事件 [复制链接]

  hi 大家,
在最近调试stm32的时候,遇到了一些问题,看看大家能不能帮帮忙。

我写的stm32程序执行过程是这样的:
stm32处于stop低功耗模式,每次由RTC的alarm中断唤醒,唤醒之后设置RTC的CNT的值为0.这样stm32就会周期性的按照alarm的值醒来。alarm的值始终保持不变。
为了确定每个周期的时长是否会按照alarm的值按时醒来,在alarm中断处理程序中反转一个引脚,然后用逻辑分析仪观测这个周期的时间,发现程序并不是按照我设的alarm值触发。


例如:
我设为alarm值500,每个Tick值代表物理上的1秒。逻辑分析仪上观察的值为每个周期是510秒。
为了确定RTC的alarm中断是否是在500处唤醒,我在每次alarm中断触发时,在中断处理程序开始就读取RTC的CNT值,得到RTC的CNT为510。

在中断处理程序中我做的事情按顺序依次为:
alarm中断触发:
1. 系统时钟的从新配置(RCC的配置)
2. 读RTC的CNT值
3.设置RTC的CNT为0
4. 串口输出一个字符串
5. 输出结束就会进入stop模式,等待下次alarm中断唤醒stm32。


令我不解的有两点:
(1)为什么设定在500处触发的alarm中断在510处处理程序才被调用?
(2)我假设串口输出对alarm中断的触发和中断处理程序的调用有影响,我去修改发送字符串的长度。当我把输出的字符串设的比较长(例如400个Byte),读出的RTC的CNT为500。输出字符串设为200Byte时,RTC的CNT为505,当字符串为5个Byte时,读出的RTC的CNT的为510。这个说明我发的数据越长,alarm的中断处理程序调用的时间越提前(越接近本应该触发的时刻:RTC的CNT=500的时候)。这件事情是因为什么原因产生的?串口输出与alarm中断之间有什么联系吗?

期待大家的解释!
谢过了!
此帖出自stm32/stm8论坛

最新回复

建议楼主用最简单的代码测试 如果:RTC_SetAlarm(x);  //休眠周期设定              PWR_EnterSTANDBYMode(); 之间逻辑过多肯定会造成耗时的  详情 回复 发表于 2013-4-15 15:36

点评

暂时还没有用过 STM32 的 RTC,正打算用。 (1)为什么设定在500处触发的alarm中断在510处处理程序才被调用? 可能是压栈消耗了 10 个时钟周期吧 (2)应该是没有联系的;一共有几个中断处理程序?  详情 回复 发表于 2013-4-15 13:00
稍等,一会帮你问问其他网友,看能不能给你建议  详情 回复 发表于 2013-4-15 11:50
点赞 关注
 

回复
举报

768

帖子

711

TA的资源

纯净的硅(高级)

沙发
 

回复 楼主 chang1no 的帖子

稍等,一会帮你问问其他网友,看能不能给你建议
此帖出自stm32/stm8论坛
 
 

回复

1803

帖子

0

TA的资源

五彩晶圆(高级)

板凳
 

回复 楼主 chang1no 的帖子

暂时还没有用过 STM32 的 RTC,正打算用。
(1)为什么设定在500处触发的alarm中断在510处处理程序才被调用?
可能是压栈消耗了 10 个时钟周期吧
(2)应该是没有联系的;一共有几个中断处理程序?
此帖出自stm32/stm8论坛
 
 

回复

2131

帖子

0

TA的资源

至上芯片

4
 
建议楼主用最简单的代码测试
如果:RTC_SetAlarm(x);  //休眠周期设定
             PWR_EnterSTANDBYMode();
之间逻辑过多肯定会造成耗时的
此帖出自stm32/stm8论坛
 
个人签名处处留心皆学问!
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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