前言
本文内容灵感来自于工作中接触的项目代码(但又不同,我稍加优化了一下。。。)
按键有哪7种状态?
因为实时性系统中信号只会判断第一次,即第二次及以后的信号不判断,且在一些场景下我们会检测信号跳变,而且有的信号只检测一次就行,有的信号要持续检测,因此举例了以下7种状态,在伪代码中可以很好看到
第1个时间片:第一次不按=第一次低电平=会仅判断一次
第2个时间片:第二次不按=第二次保持低电平=会持续判断
第3个时间片:第三次按下不松开=第三次低电平切换到高电平的高电平=信号跳变要判断
第4个时间片:第四次按下不松开=第四次保持高电平=会仅判断一次
第5个时间片:第五次按下不松开=第五次保持高电平=会持续判断
第6个时间片:第六次松开=第六次高电平切换到低电平的低电平=信号跳变要判断
第7个时间片:第七次松开=第七次保持低电平=会仅判断一次
第一次不按是起始状态=状态1
第二次不按与第一次不按相比较状态未改变=状态2
第三次按下不松开与第二次不按相比较状态改变=状态3
第四次按下不松开与第三次按下不松开相比较状态未改变=状态4
第五次按下不松开与第四次按下不松开相比较状态未改变=状态5
第六次松开与第五次按下不松开相比较状态改变=状态6
第七次松开与第六次松开相比较状态未改变=状态7
其中,状态3与状态6看起来都是状态改变,但是实际上状态改变后的结果并不