你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 9757|回复: 1

stm32的rtc alarm中断的触发事件

[复制链接]

1

主题

1

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2013-4-15 00:45:12 | 显示全部楼层 |阅读模式
  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中断之间有什么联系吗?
 
期待大家的解释!
谢过了!
回复

使用道具 举报

1

主题

1

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2013-4-15 01:00:38 | 显示全部楼层

回复: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中断之间有什么联系吗?

 
期待大家的解释!

谢过了!
回复 支持 0 反对 1

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版