微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 消抖问题

消抖问题

时间:10-02 整理:3721RD 点击:
H2L_F1 <= 1'b1;
H2L_F2 <= 1'b1;
L2H_F1 <= 1'b0;
L2H_F2 <= 1'b0;

begin
H2L_F1 <= Pin_In;
H2L_F2 <= H2L_F1;
L2H_F1 <= Pin_In;
L2H_F2 <= L2H_F1;
end

assign H2L_Sig = isEn ? ( H2L_F2 & !H2L_F1 ) : 1'b0;
assign L2H_Sig = isEn ? ( !L2H_F2 & L2H_F1 ) : 1'b0;   请教一下最后两句为什么检测的电平不一样 一个是从高到低 一个是从低到高  能不能解析一下 感觉这两句没啥区别   Pin_In相当按键



    这不是消抖问题吧,是检测信号上升沿和下降沿的问题吧。
    Pin_IN   0  0  0  1  1  0  0
    F1            0  0  0  1  1  0  0
   !F1            1  1  1  0  0  1  1
    F2                0  0  0  1  1  0  0
    F2 & !F1       0  0  0  0  1  0
    所以 H2L_F2 & !H2L_F1 为高时为下降沿。 同理分析上升沿。


按键按下的时候PIN不是为1吗?为什么是0001100 ,这个没明白,望再详细讲解一下 谢谢



    你按下去最快也要保持5-20ms高电平,这个时间内时钟上升沿都检测到多少个高电平1了啊!怎么可能只有一个高电平呢。



   谢谢你 ,但是我发现怎么用这个方法分析上升沿的时候分析不出来了,输出结果也是为1,那和下降沿是一样的输出结果?

我的理解是按键按下的时候isEn ? ( H2L_F2 & !H2L_F1 ) : 1'b0; 输出结果为0    按键弹开后assign L2H_Sig = isEn ? ( !L2H_F2 & L2H_F1 ) : 1'b0;输出结果为1  这样才能很明了知道按键松开与按下,上面按下与松开我怎么推来推去都是为0啊  都相当于按下啊  求解

我需要信元而已

小编看一下51单片机的按键那章就知道了,根据应用场景不同,按键需要知道3个信息,1按下,2保持,3弹起。

这个需要了解按键相关的知识

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top