欢迎光临东莞市恒祺电子科技有限公司官网!
东莞市恒祺电子科技有限公司Dongguan Hengqi Electronic Technology Co., Ltd.
专业开关、插座、连接器制造
全国咨询热线:0769-8533095913712077807

东莞市恒祺电子科技有限公司

Dongguan Hengqi Electronic Technology Co., Ltd.

全国咨询热线:0769-85330959
当前位置:首页 > 新闻资讯 > 行业资讯 >

怎么区分开关检测设备的状态?

时间:2022-02-18 编辑:佚名 点击:

怎么区分开关检测设备的“动作”和“状态”?至于为什么要区分“动作”和“状态”。是因为在嵌入式产品中,有一种很常见的应用逻辑:开关A、B、C处于闭合状态且开关D、E、F处于断开状态时,按下或松开开关G,执行某个操作。

在开关检测设备这种逻辑里,“按下”和“松开”是两种动作,“闭合”和“断开”是两种状态。用电路的知识来类比的话,动作是沿跳变,状态是电平。“动作”是一闪即逝的花火,状态是千年不变的承诺。我们做区分为的是,让动作“阅后即焚”,不至于成为反复触发操作的脉搏。

为了说明开关检测设备这一点,我跟大家分享一下自己设计的结构体和代码实现,这部分也可以用在问题的解答上。在这个结构体的成员变量里面,switch_id标识开关节点,大家可以用“解释性”很强的枚举来表示它。这里的switch_state表示的是开关信号的状态,swon_event和swoff_event分别表示开关从断开到闭合和从闭合到断开的变化,即上述的“动作”。 cursw和detect_cnt用于开关信号采集的软件消抖功能。


当开关检测设备开关动作发生时,swon_event和swoff_event置一,在执行完相关操作之后,将swon_event和swoff_event清零,就完成了让动作“阅后即焚”。正如上面讲过的那样,对于一般的开关节点,设计一10ms的定时器周期性地读取开关当前状态cursw,然后根据其维持当前状态的周期次数(根据不同应用场景,可以设置为5次或者10次,分别对应50ms或100ms的滤波时间)以判断switch_state、swon_event、swoff_event。
 

在线客服
联系方式

热线电话

13712077807

公司电话

0769-85330959

二维码
线