打印

关于NUC029的GPIO中断消抖功能的疑惑,求解答

[复制链接]
16705|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
礦ision5|  楼主 | 2024-7-10 20:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
关于NUC029的GPIO中断消抖功能的疑惑,求解答


NUC029中,GPIO有一个中断去抖功能。在“中断去抖周期控制(DBNCECON)”这个寄存器中需要配置采样周期。
图片好像发不了,只能复制文字。该寄存器的DBCLKSEL位描述如下:
去抖动采样周期选择
0000 = 每 1 个时钟周期采样中断输入一次.
0001 = 每 2 个时钟周期采样中断输入一次.
0010 = 每 4 个时钟周期采样中断输入一次.
0011 = 每 8 个时钟周期采样中断输入一次.
0100 = 每16 个时钟周期采样中断输入一次.
0101 = 每32 个时钟周期采样中断输入一次.
0110 = 每64 个时钟周期采样中断输入一次.
0111 = 每128 个时钟周期采样中断输入一次.
1000 = 每256 个时钟周期采样中断输入一次.
1001 = 每2*256 个时钟周期采样中断输入一次.
1010 = 每4*256 个时钟周期采样中断输入一次.
1011 = 每8*256 个时钟周期采样中断输入一次.
1100 = 每16*256 个时钟周期采样中断输入一次.
1101 = 每32*256 个时钟周期采样中断输入一次.


我对GPIO中断去抖功能的理解是:在GPIO边沿触发中断时,在经过DBCLKSEL位配置的采样周期后再进行一次检测,然后再判断是否进入中断处理函数,这个过程由硬件完成。
我想知道GPIO中断去抖功能是不是我理解的这样。不对的话,希望大佬指正下。

使用特权

评论回复
沙发
weifeng90| | 2024-7-11 08:31 | 只看该作者
按键消抖主要从硬件和软件上滤除

使用特权

评论回复
板凳
呐咯密密| | 2024-7-11 10:05 | 只看该作者
是在DBCLKSEL位配置的采样周期中只会输入一次中断请求,比如按键按下会有多个抖动,把这个时钟周期设置的大于这个时间,就会只进入一次中断,中间很多次抖动都会屏蔽掉

使用特权

评论回复
评论
礦ision5 2024-7-11 11:03 回复TA
谢谢大佬解惑 
地板
xionghaoyun| | 2024-7-13 09:18 | 只看该作者

关于NUC029的GPIO中断消抖功能的疑惑,求解答

并加个电容 不用消抖了

使用特权

评论回复
5
失物招領| | 2024-8-23 14:29 | 只看该作者
其实就用个软延时应该就可以

使用特权

评论回复
6
将爱藏于深海| | 2024-8-23 17:00 | 只看该作者
如果IO需要消抖的地方不多,硬件消抖都可以

使用特权

评论回复
7
温室雏菊| | 2024-8-23 19:00 | 只看该作者
这种是通过硬件的delay解决的吧

使用特权

评论回复
8
故意相遇| | 2024-8-23 21:00 | 只看该作者
对,应该是这个延时进入到中断了,然后出来之后再执行这个获取IO状态,如果还有说明是IO输入了

使用特权

评论回复
9
白马过平川| | 2024-8-23 23:00 | 只看该作者
我觉得不如用软件延时的方式了

使用特权

评论回复
10
她已醉| | 2024-8-24 02:00 | 只看该作者
其实delay个10ms的话也不是啥问题吧

使用特权

评论回复
11
春日负喧| | 2024-8-24 04:00 | 只看该作者
可以考虑用外部中断了,再配合软件delay呗

使用特权

评论回复
12
风凉| | 2024-8-24 06:00 | 只看该作者
这种消抖给我的感觉就是中断代替了delay了

使用特权

评论回复
13
捧一束彼岸花| | 2024-8-24 14:00 | 只看该作者
直接用软件消抖吧,简单还好理解

使用特权

评论回复
14
西洲| | 2024-8-24 16:00 | 只看该作者
这种你应该理解的没啥问题,我觉得

使用特权

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

本版积分规则

2

主题

3

帖子

1

粉丝