打印

单片机外部中断

[复制链接]
3850|26
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xyp749192072|  楼主 | 2010-8-1 15:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
lyjian| | 2010-8-1 15:32 | 只看该作者
不要用外部中断做按键输入

使用特权

评论回复
板凳
laoliang3064| | 2010-8-1 16:40 | 只看该作者
加延时不就好了。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
xyp749192072 + 1
地板
欧阳青云| | 2010-8-1 17:27 | 只看该作者
你按下时,程序进入中断处理后关掉中断,然后在主函数里面加一句判断:松手时再开外部中断

使用特权

评论回复
5
cbs110| | 2010-8-1 17:33 | 只看该作者
外部中断弄成下降沿有效不就行了?

使用特权

评论回复
6
928315| | 2010-8-1 18:49 | 只看该作者
最好不要这样做,这样做按键消抖是个麻烦事情

使用特权

评论回复
7
xyp749192072|  楼主 | 2010-8-1 19:09 | 只看该作者
外部中断弄成下降沿有效不就行了?
cbs110 发表于 2010-8-1 17:33

不行,下降沿还是会被执行多次

使用特权

评论回复
8
xyp749192072|  楼主 | 2010-8-1 19:10 | 只看该作者
此贴已结,还是在中断里加个延时函数好点

使用特权

评论回复
9
lyjian| | 2010-8-1 20:53 | 只看该作者
在中断里延时最傻的做法,不仅解决不了你的问题,还把中断的优点了用成了缺点。
如果我一直按着这个键不放那你不就一直是死在那里了。

使用特权

评论回复
10
calor| | 2010-8-1 20:59 | 只看该作者
中断里加延时?
那段时间MCU就不能做其他的事情了,想个好点的办法吧,这样做肯定不是最佳的!

使用特权

评论回复
11
batsong| | 2010-8-1 21:01 | 只看该作者
硬件加个触发器,每个下降沿触发一个脉冲

使用特权

评论回复
12
chunyang| | 2010-8-1 21:10 | 只看该作者
好的程序结构应尽量不要在中断服务程序中运行过多代码,可以在去抖处理后设置一个标志同时关闭该中断即可,主程序根据标志调用相应的处理程序,执行完毕后清标志开中断,延时程序可加在键处理程序中,如果采用任务调度且恰好工艺准许时,延时甚至可以是不必要的。标志也可开多个,用以实现自锁、互锁等功能,比如某键只能在某种条件下响应一次或在某种前提下才能响应等等。

使用特权

评论回复
13
xwj| | 2010-8-1 21:14 | 只看该作者
唉~~~~~~~

使用特权

评论回复
14
飞鹰嵌入式| | 2010-8-1 22:01 | 只看该作者
设置成上升沿出发应该会好一些的

使用特权

评论回复
15
yytdragon| | 2010-8-2 08:16 | 只看该作者
中断里加延时……
是不是只有在学校的教科书里才会出现的程序?

使用特权

评论回复
16
xiaoyu9632| | 2010-8-2 11:45 | 只看该作者
采用这种方式的话进中断后屏蔽掉中断是必须的做法。无论是边沿触发还是电平触发都要做按键的消抖处理。同时需要分辨按键的按下和按住状态。当然也还有诸如长按,或者长按释放等,这些处理方式是不同的。

使用特权

评论回复
17
xiaoyu9632| | 2010-8-2 11:46 | 只看该作者
另外,中断里加延时那是学校老师才会做的事情。

使用特权

评论回复
18
流行音乐| | 2010-8-2 11:53 | 只看该作者
每隔2ms~4ms扫描一下按键状态即可,不要用外部中断,最多用定时器中断(如果程序设计的合适,也可以不用)。

使用特权

评论回复
19
HWM| | 2010-8-2 11:54 | 只看该作者
to 17L:

你这逻辑有根据吗?若无,最好别妄加断言,否则你的“作业”估计也好不到那里去,因为很可能言出无据。

使用特权

评论回复
20
pineapple2009| | 2010-8-2 12:48 | 只看该作者
LS肯定是个好老师啊

使用特权

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

本版积分规则

个人签名:年轻,正是积攒实力的时候!

1

主题

77

帖子

1

粉丝