这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » peng36933进程贴--按键LED

共4条 1/1 1 跳转至

peng36933进程贴--按键LED

助工
2013-08-10 17:46:41     打赏

    基本的点亮LED搞定了,然后按照左移右移写了一下流水灯的程序,问题也不大。昨天和今天测试了一下独立按键,昨天是根据自己的思路在做,一开始没有加消抖,不是很稳定,后来想着加个松手检测,使用了类似单片机机的死循环,也没有弄好,估计是always语句下每个时钟沿都会进一次,while在里面没派上用场。然后想着用上升沿触发按键,估计这上升沿和松手的功能是一样的。想着在always条件中用posedge key_in,没有成功,没有时钟源检测进入不了,在always语句里又不能使用posedge key_in。

 

    今天看了按键篇的文档,对下降沿触发有了一个基本的了解,依葫芦画瓢照写程序,确实解决了昨天的抖动问题,不过下降沿检测的原理没有弄太明白,自己分析代码硬是没搞明白什么事儿:为什么每次判断按键都要检测两次呢?思考再三,终于弄明白了,第一次检测的值存储在下一个时钟沿到来时存储在第二个寄存器中,这样判断两次的值的变化,进而实现下降沿检测的效果。照着做了一下上升沿触发,也就是将

assign key_low = key_rst_r & (~key_rst);修改成了

assign key_low = (~key_rst_r) & key_rst;

实现了单片机的松手检测。

 

    Verilog HDL和C语言还是不一样,C语言是顺序执行的,Verilog是上电后大家一起执行。

 

    按键告一段落,这样的上升沿、下降沿触发方式,还真有点意思!学习了!!




关键词: peng36933     进程     按键    

院士
2013-08-12 09:03:26     打赏
2楼

不错,这是你的第一个进程帖吗?


助工
2013-08-13 08:36:23     打赏
3楼
不是啊,王总。第4个进程贴了。还在跟进中。。。

院士
2013-08-13 14:43:21     打赏
4楼
所有的进程都放在一个帖子中多好啊

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]