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

[复制链接]
1087|4
手机看帖
扫描二维码
随时随地手机跟帖
礦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中断消抖功能的疑惑,求解答

并加个电容 不用消抖了

使用特权

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

本版积分规则

2

主题

3

帖子

1

粉丝