关于关中断的问题

superlinux110 2007-09-14 01:59:28
我用中断写了个按键驱动,有个问题是因为按键抖动,会触发多次中断,所以我想在进入中断处理程序之前关闭当前中断,应该怎样做?
...全文
135 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tb01412 2007-09-18
  • 打赏
  • 举报
回复
进入中断处理程序之后,相应的中断是关闭了的,LZ的问题可能有两种情况:
1.没有清中断标志,所以退出中断后会继续中断
2.按键本身有抖动,有些键盘芯片做得好,会在硬件上去抖动,所以就看LZ使用的硬件了
dai_weitao 2007-09-17
  • 打赏
  • 举报
回复
中断处理程序的开头就需要关中断, 结束前开中断.
按键抖动不是问题, 这需要设置按键间隔.
aria 2007-09-16
  • 打赏
  • 举报
回复
tb01412兄已经说得挺清楚了。

个人认为你要做的不是关中断,而是考虑如何处理按键抖动...
hefuhua 2007-09-14
  • 打赏
  • 举报
回复

void fun_irq(unsingd int irq,...)
{
disable_irq(irq);
.....
.....
enable_irq(irq);

}
zhang_jiang 2007-09-14
  • 打赏
  • 举报
回复
cat /proc/interrupts看你这个中断是什么类型的,我怀疑是level-triggerred irq.
你的中断处理函数退出前没有正确设置硬件使它改变中断引线的电平,所以中断控制器就一直认为设备在发中断了。
tb01412 2007-09-14
  • 打赏
  • 举报
回复
进入中断处理程序之后,相应的中断是关闭了的

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧