完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本帖最后由 squall001 于 2015-2-5 03:26 编辑 我遇到下降沿触发的一个问题 用的是STC11F系列,1T的8051内核的单片机,发现在设置为下降沿触发的时候,结果达不到预期。 首先说下我的程序流程: 在程序里面,开始就开定时器0,设置为50ms(我随便设置的),让定时器跑起来,定时器中断里面,再设置为50ms延时,然后就让定时器这样重复不断的跑。 外部下降沿中断使用INT1,P3.3口,通过外部按键进入中断程序,在中断程序里面,首先关闭INT1中断,然后中断标志位清0,然后再停止定时器计数,再把当前定时器里面的值取起出来,通过一系列运算得到另一个值B,把B放到段码管里面显示出来, 另外在中断程序里面,我做了一个1-2秒钟的扫描段码管的操作,该操作是让我知道其单片机的确进入到中断程序里面来了,另外一个原因就是在中断里面做一个延时,去掉按键抖动。 程序源代码我会在二楼里面贴出来 问题: 在按下按钮后虽然会触发中断,但是程序输出的段码管的值一直都是0,这个原因我分析为程序在响应完这次中断过后,紧接着又一次进入了这个中断,这才使得断码管的值为0, 归结起来就是单片机会连续响应两次中断,而我设置在中断开头的关闭中断,和清除中断标志位好像也没有起到作用。 我特地用外部电路生成了个下降沿看起来很好的电平来触发这个中断,结果得到的结果和上面一样,段码管显示0,我想原因可能也和上面一样,求问题的具体原因和解决方法。。 下面是我用示波器观测到的我生成的那个下降沿很好的电平: |
|
相关推荐
7个回答
|
|
以下是测试程序
|
|
|
|
另外如果我把中断设置为低电平触发,那么就没有问题了,一切正常。
---那就用低电平触发,为什么要用边缘?想排除是否连续中断了,设置一个断点、几个进中断计数 的代码就知道了。非要用边缘触发,硬件加电容、软件去抖啊。 |
|
|
|
设置断点是什么意思?你意思是说在线调试? |
|
|
|
|
|
|
|
恩 我现在确定了,确实是重复进入中断, 那么也就是说,即使在程序的开头部分关中断,人工去中断清0,执行这些代码中间的时间,也会让外来中断挂起。 |
|
|
|
另外你说的在线调试是哪款单片机?可以在程序中间下断点的那种 |
|
|
|
我建议你先好好弄下基础,推荐你看下 胡汉才《单片机原理及接口技术》第六章 中断系统。
胡汉才《单片机原理及接口技术》.pdf
(10.48 MB, 下载次数: 61
)
下不了去网盘 http://yun.baidu.com/share/link? ... 6&uk=3976850061 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
182 浏览 0 评论
如何用OpenCV的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板
1207 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十章 YOLO2人手检测实验
493 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-网络编程示例之开发板测试
420 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-网络编程示例之网络socket程序编程
957 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11742 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 07:35 , Processed in 0.645646 second(s), Total 84, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号