Skip to content

关于按键滤波方案的一个想法 #173

@Huffer342-WSH

Description

@Huffer342-WSH
  • 假如按键输入长时间没有发生变化,突然电平发生了改变,即使之后会有抖动,也可以认为按键状态已经发生变化,而不用在延迟一次或者多次扫描结果在做判断。
  • 假如按键输入前一段时间不稳定,那就按照普通的方案等按键稳定。

假如键盘没有按下或者松开,电平无缘无故发生变化,那肯定是轴坏了或者键盘摔地上了。

N:认为键盘长时间没有变化的门限,比如按下按键触发时间一般都有几十毫秒,N=50差不多
M: M次扫描结果相同,认为按键稳定。客制化轴体水平参差不齐,这个M不好说,段落轴由于弹片震动,更加不稳定。
状态A:前N次扫描电平无抖动
状态B:前N次扫描电平发生变化
电平L,扫描输入K,上一次扫描输入Kp
状态A———电平不变 L==Kp==K————> 状态A
状态A———电平发生变化 L==Kp!=K————> 状态B 直接修改电平状态L=K
状态B———电平发生变化 Kp!=K————> 状态B cnt=0
状态B———电平不发生变化 Kp==K,cnt<N————> 状态B cnt++;cnt>=M : L=K ;
状态B———电平不发生变化 Kp==K,cnt>=N————> 状态A

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions