打印

按键消抖的问题

[复制链接]
3045|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bryanlee512|  楼主 | 2015-12-29 12:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
pi, gp, IO, GPIO, ST
/* GPIO ISR */
void gpio_isr(void)
{
    volatile uint32_t status,i;
    status = MAP_GPIO_getEnabledInterruptStatus(GPIO_PORT_P1);
    MAP_GPIO_clearInterruptFlag(GPIO_PORT_P1, status);

    /* Toggling the output on the LED */
    if(status & GPIO_PIN1)
    {
      for(i=5000;i>0;i--);
      if(status & GPIO_PIN1){
                MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0);
                                          }
      }
}
msp432实现按键中断点亮/熄灭p1.1led,中断程序内,加了延时后,按键消抖的效果还是不理想,不知道哪儿出问题。

相关帖子

沙发
dirtwillfly| | 2015-12-29 12:48 | 只看该作者
又一个在中断服务程序里延时的。。
你的for(i=5000;i>0;i--);这一句延时多长时间啊?

使用特权

评论回复
板凳
bryanlee512|  楼主 | 2015-12-29 17:16 | 只看该作者
dirtwillfly 发表于 2015-12-29 12:48
又一个在中断服务程序里延时的。。
你的for(i=5000;i>0;i--);这一句延时多长时间啊? ...

这个只是试一下,不在中断里延时,还有什么方法实现?

使用特权

评论回复
地板
dirtwillfly| | 2015-12-29 20:59 | 只看该作者
bryanlee512 发表于 2015-12-29 17:16
这个只是试一下,不在中断里延时,还有什么方法实现?

有的。有很多方法,延时最好用定时器

使用特权

评论回复
5
mmbs| | 2015-12-29 22:10 | 只看该作者
可以使用物理消抖

使用特权

评论回复
6
mmbs| | 2015-12-29 22:12 | 只看该作者
或者使用延时检测,但是浪费资源。

使用特权

评论回复
7
i1mcu| | 2015-12-29 22:20 | 只看该作者
可以使用tft的触摸

使用特权

评论回复
8
i1mcu| | 2015-12-29 22:23 | 只看该作者
直接使用内部的ad处理。

使用特权

评论回复
9
小鱼儿1045| | 2015-12-30 08:57 | 只看该作者
状态机扫描按键,中断里做延时,暴殄天物!中断处理原则:快进快出!

使用特权

评论回复
10
lgq1542380129| | 2015-12-30 09:35 | 只看该作者
定时器扫描,定时5-10ms;在定时器中断里设置标志位;等标志位为2时说明有键按下。

使用特权

评论回复
11
幸福至上| | 2015-12-30 10:44 | 只看该作者
楼主你这个中断的for循环延时后,是不是应该重新获取一次按键对应端口的状态,再进行且运算if(status & GPIO_PIN1),{翻转LED......}

使用特权

评论回复
12
bryanlee512|  楼主 | 2015-12-30 18:26 | 只看该作者
(status & GPIO_PIN1)不就是重新获取按键端口状态么

使用特权

评论回复
13
尤彼卡| | 2015-12-31 14:21 | 只看该作者
这个只是试一下,不在中断里延时,还有什么方法实现?

在中断里弄个计数的变量,延时在主函数做

使用特权

评论回复
14
bryanlee512|  楼主 | 2015-12-31 15:41 | 只看该作者
尤彼卡 发表于 2015-12-31 14:21
在中断里弄个计数的变量,延时在主函数做

有具体代码可参考么

使用特权

评论回复
15
可可球| | 2015-12-31 16:38 | 只看该作者
if(x0==0)         
{
   delay(1000);        
   if(x0==0)
   {
     ....
这样做试试

使用特权

评论回复
16
mmbs| | 2016-1-3 22:34 | 只看该作者
软件消抖能行么

使用特权

评论回复
17
mmbs| | 2016-1-3 22:34 | 只看该作者
还得检测弹起才行

使用特权

评论回复
18
尤彼卡| | 2016-1-11 21:24 | 只看该作者
也可以用键值,度前后时刻的键值

使用特权

评论回复
19
cemaj| | 2016-1-11 22:14 | 只看该作者
太浪费时间了。

使用特权

评论回复
20
cemaj| | 2016-1-11 22:17 | 只看该作者
在中断里面不要做太多的处理。

使用特权

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

本版积分规则

18

主题

72

帖子

0

粉丝