最近学了FPGA 一段时间,想自己做个真实的东西,笔者也是务实求真的人,呵呵。首先就选择了一个数字钟,当我昨晚了计数器模块,做按键校准的时候,就发现按键抖动的很厉害,没有C 语言做防抖动那么简单,因此我参考了网上很多博主的观点,总结了自己认为最简单,最精简的一个写法,如下: 进程模块内代码只有10行。哈哈
reg key_reg1,key_reg2,key_out;
always @( posedge clk)//CLK 50M
begin
count2<=count2+1;
if(count2==500000)
begin
key_reg1<=key1;
count2<=0;
end
key_reg2<=key_reg1;
key_out<=key_reg2&(!key_reg1);
end
意思为定义2个寄存器,存储按键在2个周期内的数据,计数器是决定按键的采样频率,如果我们把按键的采样频率调高,那么 按键就会有2次相应,我试过吧计数器去掉,但是一直都是双数增加,很让我费解,在苦思冥想之际,悟出了可以通过延时,吧后面松手的一个电平跳变滤掉,哈哈!!顿时给大家分享下最简单的防抖动,
key1 是低电平按下,当按下的时候, key_out输出的是一个高电平。这个需要大家注意。
如有bug 希望大家抛砖
共6条
1/1 1 跳转至页
FPGA按键防抖动,最精简的写法只有10行
共6条
1/1 1 跳转至页
回复
| 有奖活动 | |
|---|---|
| 2026年“我要开发板活动”第三季,开始了! | |
| 硬核工程师专属补给计划——填盲盒 | |
| “我踩过的那些坑”主题活动——第002期 | |
| 【EEPW电子工程师创研计划】技术变现通道已开启~ | |
| 发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
| 【EEPW在线】E起听工程师的声音! | |
| 高校联络员开始招募啦!有惊喜!! | |
| 【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
我要赚赏金打赏帖 |
|
|---|---|
| PTC与NTC功能常规对比被打赏¥14元 | |
| 【分享开发笔记,赚取电动螺丝刀】关于3pin锂电池接口的介绍/使用被打赏¥16元 | |
| 以启明云端ESP32P4开发板实现TF卡读写功能被打赏¥28元 | |
| 【分享开发笔记,赚取电动螺丝刀】树莓派5串口UART0配置被打赏¥25元 | |
| 【STM32F103ZET6】17:分享在Rtos项目中断管理的使用经验被打赏¥23元 | |
| 【STM32F103ZET6】16:分享在中断中恢复串口任务,遇到的问题被打赏¥31元 | |
| 在FireBeetle2ESP32-C5上实现温度大气压检测及显示被打赏¥21元 | |
| 【分享开发笔记,赚取电动螺丝刀】SAME51双串口收发配置被打赏¥27元 | |
| Chaos-nano操作系统在手持式VOC检测设备上的应用被打赏¥37元 | |
| 【分享开发笔记,赚取电动螺丝刀】关于在导入第三方库lib时,wchart类型冲突的原因及解决方案被打赏¥30元 | |
我要赚赏金
