消抖问题
时间: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相当按键
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弹起。
这个需要了解按键相关的知识
