消抖,在定时器中断里面调用按键扫描子程序好还是在

消抖,在定时器中断里面调用按键扫描子程序好还是在,第1张

if(key_statue==1)

{

key_statue=0;

led=~led;

}

你把这段代码写到主循环中,不能放到外中断中,这样就正常了,另外,把定时器的中断改成我给你的样子,要是不正常你找我!

void t0() interrupt 1 //1ms 用于按键去抖动。

{

TH0=(65536-1000)/256;

TL0=(65536-1000)%256;

if(key == 0)

{

key_num++;

if(key_num>=15)

{

key_num = 15;

key_statue=1;

}

}

else

key_num = 0;

}

楼主参考一下这两份资料,再自己调试调试就好了。

>

这里的消抖不能紧紧靠上升沿中断,还需要定时器时器帮助,上升沿中断来的时候,打开下降沿中断,同时打开定时器开始计时,接着,若是定时器先触发,那么按键有效,若下降沿先触发,此次按键需要消除,原理是这样。

但只是一个按键检测,要求不高的场合使用时间片循环就好了,没必要消耗那么多硬件资源。当然,上面采用硬件资源来消抖是最严谨。

以上就是关于消抖,在定时器中断里面调用按键扫描子程序好还是在全部的内容,包括:消抖,在定时器中断里面调用按键扫描子程序好还是在、请教高手:怎么用定时器/中断进行按键的消抖 最好有c程序讲解,谢谢!、STM32中断采用按键上升沿怎样消抖啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10205629.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存