野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 33201|回复: 5

外部中断死在延时函数里面,求帮助!!!!!!!

[复制链接]
发表于 2014-2-3 15:36:44 | 显示全部楼层 |阅读模式
我写了一个外部中断程序,用到按键中断,当我不使用延时函数时,我用jtag仿真,外部中断成功,,虽然按键抖动比较厉害,但我不用jtag仿真,而是直接用战舰开发板时,却没有外部中断效果!
当我加上延时去抖时,用jtag仿真,却发现程序死在了延时函数里面

说明:我的延时用到了系统滴答定时器

源程序已经上传,望大神帮忙!万分感谢!




2.GPIO复用外部中断.rar

273.47 KB, 下载次数: 34

回复

使用道具 举报

发表于 2014-2-3 18:11:37 | 显示全部楼层
用jtag仿真,却发现程序死在了延时函数里面

是全速运行,发现一直出不了延时函数吗?在延时后面设个断点,然后全速影响看看效果
回复 支持 反对

使用道具 举报

发表于 2014-2-3 21:33:31 | 显示全部楼层
用火哥的这个例程吧,这个例程里的按键程序使用了外部中断,用了很标准的方法去消抖
http://www.firebbs.cn/forum.php? ... &extra=page%3D1
回复 支持 反对

使用道具 举报

发表于 2014-2-3 21:39:32 | 显示全部楼层
应该是你的systick没有配置正确,把你的delay_num改成volatile类型试试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-4 10:31:15 | 显示全部楼层
问题解决了,外部中断的优先级都比滴答定时器的高,所以一直都进不了滴答定时器的服务函数,我改了延时的方式就解决了!谢谢大家!
回复 支持 反对

使用道具 举报

发表于 2014-2-4 10:32:10 | 显示全部楼层
口天土立口 发表于 2014-2-4 10:31
问题解决了,外部中断的优先级都比滴答定时器的高,所以一直都进不了滴答定时器的服务函数,我改了延时的方 ...

修改滴答定时器的优先级为0,它默认是15
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-12-6 01:02 , Processed in 0.040706 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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