打印
[STM32F3]

大家都是怎么写按键中断处理函数的

[复制链接]
2496|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
平常心kxy|  楼主 | 2014-9-8 17:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
感觉在中断中进行延时滤波不太好。各位有什么好的方法
void EXTI15_10_IRQHandler()
{
      if(KEY1==0)
{
      delay_ms(20);
  if(KEY1==0)
  {
if(EXTI_GetFlagStatus(EXTI_Line15)==SET)
     {
    exitflag=1;
EXTI_ClearFlag(EXTI_Line15);
        EXTI_ClearITPendingBit(EXTI_Line15);  
     }
  }
}
}



沙发
wangch_sh| | 2014-9-8 19:10 | 只看该作者
你这样搞还不如用查询。

使用特权

评论回复
板凳
xuan309170083| | 2014-9-8 19:41 | 只看该作者
不需要识别双击的话,在中断里面直接判定按键按下,用定时器延时。

你在中断里面延时20ms简直就是。。。

使用特权

评论回复
地板
平常心kxy|  楼主 | 2014-9-8 19:58 | 只看该作者
xuan309170083 发表于 2014-9-8 19:41
不需要识别双击的话,在中断里面直接判定按键按下,用定时器延时。

你在中断里面延时20ms简直就是。。。[e ...

我觉得也不好。这样写省事。

使用特权

评论回复
5
mmuuss586| | 2014-9-8 20:33 | 只看该作者
中断程序越短越好;
既然是中断程序,进入中断后先判断是啥中断,清楚中断标志;
而不是判断按键有没有按下;

使用特权

评论回复
6
mmuuss586| | 2014-9-8 20:42 | 只看该作者
对于按键滤波程序,长按短按等判断;
完全可以用定时器配合,而不是让程序死等;

使用特权

评论回复
7
平常心kxy|  楼主 | 2014-9-8 21:08 | 只看该作者
xuan309170083 发表于 2014-9-8 19:41
不需要识别双击的话,在中断里面直接判定按键按下,用定时器延时。

你在中断里面延时20ms简直就是。。。[e ...

求个大体程序架构

使用特权

评论回复
8
m564522634| | 2014-9-9 11:34 | 只看该作者
这样写是不对的,开个定时器吧,关键是每次按键按下有许多抖动,你要想办法软件上除了

使用特权

评论回复
9
Harvard| | 2014-9-9 14:06 | 只看该作者
死等延时是大忌 , 省事不是借口, 还是要规范起来, 利用定时扫描+ 状态机来实现.

使用特权

评论回复
10
diweo| | 2014-9-9 15:38 | 只看该作者
哎,又是一个中断里面用delay的。

使用特权

评论回复
11
i55| | 2014-9-9 16:23 | 只看该作者
stm23随便上个rtos,然后就可随便ostimedelay查询按键状态了。

使用特权

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

本版积分规则

23

主题

107

帖子

3

粉丝