发新帖我要提问
12
返回列表
打印

51单片机外部中断运用问题?

[复制链接]
楼主: 7120223
手机看帖
扫描二维码
随时随地手机跟帖
21
gaohq| | 2010-4-22 20:33 | 只看该作者 回帖奖励 |倒序浏览
关注

使用特权

评论回复
22
strang| | 2010-4-22 22:27 | 只看该作者
我的产品上就有这个情况。估计也是抖动造成的。
电机带动叶轮,光电开关检测信号。有时候也会触发两下。

但是还有个问题,就是电机在不走了(可能走那么一点儿),叶轮开始抖动,导致报警不灵敏。(我的意思是停止后马上报警)

使用特权

评论回复
23
7120223|  楼主 | 2010-4-23 10:49 | 只看该作者
我也是电机带叶轮
这几天试了几中方法:
1.进中断,关中断,主程序循环N次,这个方法,对于主程序执行比较稳定时间的效果有,但是对于主程序执行时间有时长有时短时,N的值不怎么好确定,N大了影响下次中断判断,短了又没效果。
2.低电平触发,不怎么合理,不好控制,我有时需要长时间维持在低电平状态上。
3.下降沿,进中断,最后出中断消除中断标志,效果不佳。
4.3和1结合,但是问题没有更本解决
5.下降沿触发,计数我不在中断里面执行,在中断里面设置标志,主程序来计数,(主程序有两个标志,一个中断标志位,一个是命令标志位)同时控制电机停止。因为我的问题是电机停止的时候会出现两次进入中断,所有我只读取第一次进入中断的标志,然后电机停止,把命令标志为位清零,这样即使在来一次中断标志位我也不必理睬。同时我在执行下一步电机命令之前,再把命令标志位打开,中断标志位清零。这样就根本解决了进入两次中断导致计数多一部的问题。

使用特权

评论回复
24
ayb_ice| | 2010-4-23 11:47 | 只看该作者
lZ的情况和按键处理类似的

使用特权

评论回复
25
dengm| | 2010-4-23 18:30 | 只看该作者
中断标志位 是不能软件控制的, 我给你的方法才能 把中断标志位清零:

关中断 ---  电平 ---- 边缘

使用特权

评论回复
26
7120223|  楼主 | 2010-4-23 22:53 | 只看该作者
关中断,在不断检测电平么,边缘怎么理解呢  就是加计数的么

使用特权

评论回复
27
dengm| | 2010-4-24 20:16 | 只看该作者
边缘: 下降沿触发方式  setb it0     |   setb it1  
电平: 低电平触发方式  clr    it0      |   clr    it1

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则