gpt4 book ai didi

c - 如何删除与其他号码隔离的号码

转载 作者:行者123 更新时间:2023-11-30 21:23:14 24 4
gpt4 key购买 nike

我在这方面遇到了麻烦:反弹过滤器是一种可以消除反弹效果的方法,即,毛刺/尖峰,例如机械开关或嘈杂的传感器中的毛刺/尖峰。这里我们考虑在某些 1 中间反弹为单个 0,或者在某些 0 中间反弹为 1。有制作防抖器的方法有很多。在这里我们感兴趣的是产生期望的效果通过有限状态自动机(在软件中)。因此,自动机应该删除一个0/1 与 1/0 隔离。

而且我不知道如何删除开关盒内 1/0 之间隔离的 0/1。有什么想法吗?

最佳答案

作为 satae 机器:

S1 (out '1'):  
'1' > S1
'0' > S2

S2 (out '1'):
'1' > S1
'0' > S4

S3 (out '0'):
'1' > S1
'0' > S4

S4 (out '0'):
'1' > S3
'0' > S4

翻译成代码(即时编写,借口语法):

enum EState { Strong1, Weak1, Weak0, Strong0 };
EState m_state = Weak0;
bool stateStep(bool b) {
switch(m_state) {
case Strong1:
if(!b)
m_state = Weak1
break;
case Weak1:
case Weak0:
m_state = b ? Strong1 : Strong0;
break;
case Strong0:
if(b)
m_state = Weak0
break;
}
return (m_state==Strong1) || (m_state==Weak1);
}

关于c - 如何删除与其他号码隔离的号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47124890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com