找回密码
 注册
关于网站域名变更的通知
查看: 194|回复: 4
打印 上一主题 下一主题

verilog 按键消抖代码?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-5-15 15:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
下面这段代码中的红框内,两句理解不了。+ A# Q# ]: r! A$ B! K8 g% d6 w
请大侠帮忙解惑,谢谢!
, {! e! y) e: [3 R$ h2 R+ [, H& S1 d; |( g/ z' z
对于这段代码我的理解是:
% l8 U/ G1 c, \+ G1 @复位之后,keyr[3:0]值是1111,# n+ @7 R0 p  a3 t2 N2 H. ~1 e
而keyr <= {keyr[2:0],key};后,keyr的值是1-1-1-key.
) u/ z' u! t% _3 i, v如果有键按下去,那么keyr的值是1110.9 R8 V$ e5 v6 L. l
而keyr[2],keyr[3],一直都是1,0 u$ j- _8 I: K! ^; O; D
所以~keyr[2] & keyr[3]和keyr[2] & ~keyr[3]一直都是0.
* {% j. C. x( ^0 ]( {! e0 Zkey值( keyr[0])的变化对 key_neg和key_pos的值,没有影响。
) G! {, E6 D& n2 ~- i  t5 z6 E我不知道,哪里有问题,谢谢
9 `- I6 H1 t$ U8 Q- a$ r& k5 F
$ D# x( ?) ?" N) n- w  x/ R4 f8 |file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\14729019\QQ\WinTemp\RichOle\Z)Y`5F_Z0HJN3I@J8(7$@ST.png6 k- W. h# P  ~6 P. e$ f6 Z. b

该用户从未签到

2#
发表于 2020-5-15 15:56 | 只看该作者
平时1,一旦有按键,keyr就会置零,那&的结果就变了,不过写的有点繁琐,我当时看这个程序给简化了,按下和松开好像弄成一个,一年了,我给忘了怎么改的

点评

我也是啊  详情 回复 发表于 2020-5-15 15:57

该用户从未签到

3#
 楼主| 发表于 2020-5-15 15:57 | 只看该作者
wdsdswwaaa 发表于 2020-5-15 15:56
4 Q  U& w5 S4 v, y平时1,一旦有按键,keyr就会置零,那&的结果就变了,不过写的有点繁琐,我当时看这个程序给简化了,按下和 ...

: {9 G! F. C" P- x: Q! `我也是啊( q9 v2 k0 T$ O2 \1 Y9 c

该用户从未签到

4#
发表于 2020-5-15 15:58 | 只看该作者
首先明确一点,在红框代码中取反运算符~的优先级最高。代码里你对移位的理解是正确的。
7 z( J9 D$ v! y0 J: L4 f6 g) _% P- J; B* u
常态,keyr=1111;此时,key_neg= 0与1 =0,key_pos= 1与0 =0.& S: Z  o* F8 @" t  @9 h
7 E' R' A$ D* [6 Y4 S! P& A
按下,keyr=1110/1100/1000/0000;此时,key_neg= 1与1 =1,key_pos= 0与x =0.# U  ^! d8 Z' v1 ~% n
2 _( `) i3 f2 c- q
松开,keyr=0001/0011/0111/1111;此时,key_neg= 1与0 或者 0与x =0,key_pos= 1与1 =1.' u6 B+ ~: S( Q4 i
//-------------
+ t  F$ p3 F) V至于程序是否要合并,看个人编码习惯。总之,代码越简单越容易理解。

该用户从未签到

5#
 楼主| 发表于 2020-5-15 15:59 | 只看该作者
每个ext_clk_25m的上升沿会进行位移:把keyr低3位和key=1 的值写到 keyr& F/ Z' s9 X; Y/ A
1 d% p! Q' Z9 k* z/ ^1 \
     key_neg 只要是keyr的最高位是0 就会判断按下
: O+ u) {' N3 F4 C8 h     key_pos 在keyr最高位是0,keyr[2]是1,就会判断释放   ( g6 I; T/ U( T' `# }

3 p2 H1 d5 O5 @2 y2 [6 O     这样应该不怎么消抖吧    用连续几个位判断会不会好一点
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-21 09:22 , Processed in 0.140625 second(s), 30 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表