完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
对按键消抖是设计思想已经理解了,但有一处纠结了很久,还是不解:
wire[2:0] key_an = key_rst_r & ( ~key_rst); else if(key_an) cnt <=20'd0; key_an不是三位位宽吗,那怎么判断其整体的大小呢?如key_an=110 |
|
相关推荐
7个回答
|
|
下面一段是用Verilog写的按钮去抖动,及按住不放间隔取值的描述,会不会对你有帮助?
对于按钮使用除了物理的抖动,还可能出现人按压按钮是手颤动,为了预防手颤动或按压时间过长的问题,也需要对按压动作取值控制一定的时间间隔。在计算物理抖动时,必须是没有取值的状态。按钮下压值为0。这里的设计使我们按住按钮不松手,就可以按照一定的间隔时间(大约1秒),连续取值。这种情况用在浏览按钮使用非常方便。按住左或右浏览按钮不松手,可以连续浏览缓冲区的内容。 always@(posedge clk18) //去抖动 begin if ( SW[0]==1 && KEY[0]==0 && kz==0) //有效键按下输入 begin Co <= Co+1'b1; //有效按下按钮计时 if (Co==10800 ) writ<=1; //越过抖动时间正确取值 else begin writ <= 0; //取值延长一个节拍 if (Co[22]==1) //进入连续取值计时 begin kz<=1; //不准取值标志 coo<=0; //开始间隔计时 end end end else //没有按压按钮的情况: begin Co<=0; writ <= 0; coo <= coo+1'b1; //为无效按压计时 if (coo[22]==1) kz <= 0; //预备输入按钮按压 end |
|
|
|
嗯,非常感谢,这段程序基本上看懂了,不过我对那个还是有些纠结
|
|
|
|
我也很纠结这个问题,想不明白,求大神解决!
|
|
|
|
同样的问题!!!!!!!!
|
|
|
|
能判断的按键按下时key_an就只有一位是1,其余位是0
key_rst 1110 ~key_rst 0001 key_rst_r 1110 key_an= 0010 对准来看结果就这样 |
|
|
|
我写了个四个位宽的解释,三个位宽同理 |
|
|
|
/////////////////////////
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
求FPGA 驱动控制ltc2271 或者 ltc2180 或者 ltc2190或者 ltc2202 的代码
904 浏览 0 评论
353 浏览 0 评论
求助:遇见诡异问题,FPGA模块A输出端口连接模块B输入后,模块A不能正常工作的
1085 浏览 1 评论
409 浏览 0 评论
1020 浏览 1 评论
3912 浏览 89 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-4 15:16 , Processed in 1.173764 second(s), Total 84, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号