OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3000|回复: 4

外部中断调用延时函数的时候卡住了?

[复制链接]

3

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
185
金钱
185
注册时间
2018-4-22
在线时间
39 小时
发表于 2018-4-22 16:58:23 | 显示全部楼层 |阅读模式
1金钱
因为刚好需要用,外部中断唤醒STOP模式. 直接加载原子哥的程序.正确唤醒. 但是唤醒之后,发现不再进入STOP状态.甚至不再运行main中的while循环. 但是外部中断依然在运行. 将外部中断函数中的 dealy_ms(10);注释掉之后,可以正常随眠和唤醒.
个人认为是 在dealy_ms(10),这个过程中触发了,另外一个中断. 并且因为这个中断,没有清楚中断标识位的操作.导致一直循环进入这个中断函数中.但是因为这个中断函数的优先级较低,所以可以被外部中断再次嵌套中断. 我试了一下,在中断处理函数里面清除所有的外部中断标志位,问题依旧....
虽然说只要不在外部中断中加延时就行了,但是还是想知道这种情况到底是触发了哪个中断标志位??

最佳答案

查看完整内容[请看2#楼]

后来直接自己建立一个工程使用STOP就没问题了,使用原子哥的程序需要你把程序搞懂,不然可能引起冲突.自己建工程是简便的办法
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
185
金钱
185
注册时间
2018-4-22
在线时间
39 小时
 楼主| 发表于 2018-4-22 16:58:24 | 显示全部楼层
蜗牛者 发表于 2018-11-15 14:24
楼主最后如何解决的呢,真是因为滴答计时器的问题吗?

后来直接自己建立一个工程使用STOP就没问题了,使用原子哥的程序需要你把程序搞懂,不然可能引起冲突.自己建工程是简便的办法
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-4-23 02:04:06 | 显示全部楼层
把其他所有中断都关了,只留下你这个唤醒中断,试试。
回复

使用道具 举报

3

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
185
金钱
185
注册时间
2018-4-22
在线时间
39 小时
 楼主| 发表于 2018-4-28 21:33:23 | 显示全部楼层
嗯, 好谢谢. 板子忘记拿了. 现在看下代码. 应该是我在主程序中调用了滴答定时器延时. 外部中断里面的延时函数也用了滴答定时器. 板子忘公司了,下次试试,将修改其中一个延时函数,看看还有没问题.
回复

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2015-11-25
在线时间
6 小时
发表于 2018-11-15 14:24:24 | 显示全部楼层
楼主最后如何解决的呢,真是因为滴答计时器的问题吗?
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-22 05:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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