【技术实现步骤摘要】
一种基于位运算的软件防抖方法和装置
本专利技术涉及嵌入式控制
,特别是涉及一种基于位运算的软件防抖方法和装置。
技术介绍
嵌入式控制系统中,采集开关量和/或告警量时,这些开关量和告警量通常来源于外围的硬件设备或者环境,这些量的特点是不稳定,通常会有一些抖动或干扰。一般的防抖方式是保存n个历史记录,根据这n个历史检测记录是否一致来判断是否有抖动。该方法比较直接,但是扩展性不够好,使用不够灵活。每缓存一个新的检测值,都需要往前拷贝n-1个记录,代码运算效率不够高,占用内存空间大;比较n个检测值是否相等时,也显得有些麻烦。如下为伪代码描述:v1,v2,v3....vn可以使用数组来保存,使用循环来做值拷贝和比较运算。假如需要做4次或者更多次滤波防抖,那么,上面的代码需要增加多个变量,增加多次数值拷贝和逻辑判断。滤波深度增加,代码需要做一些改动,并且需要增加内存消耗和运算时间。鉴于此,克服该现有技术所存在的缺陷是本
亟待解决的问题。
技术实现思路
本专利技术要解决的技术问题 ...
【技术保护点】
1.一种基于位运算的软件防抖方法,其特征在于,使用一个包含指定数量bit位的字节、整数或者字符串作为一个队列,用于缓存历史告警采集记录,每一个bit位代表一次采样记录结果,其中,bit位为0或者为1分别用于对应告警和非告警中的一种情况,方法包括:/n在每一轮获取到新的告警采集内容需要进行记录时,寻址到相应队列的记录目标bit位;/n确认告警采集内容属于告警或者非告警,并将告警采集内容转换为相应的bit值;/n将由告警采集内容转换得到的bit值和寻址到的目标比特位进行位或运算,完成新一轮告警采集内容在队列中的入队。/n
【技术特征摘要】
1.一种基于位运算的软件防抖方法,其特征在于,使用一个包含指定数量bit位的字节、整数或者字符串作为一个队列,用于缓存历史告警采集记录,每一个bit位代表一次采样记录结果,其中,bit位为0或者为1分别用于对应告警和非告警中的一种情况,方法包括:
在每一轮获取到新的告警采集内容需要进行记录时,寻址到相应队列的记录目标bit位;
确认告警采集内容属于告警或者非告警,并将告警采集内容转换为相应的bit值;
将由告警采集内容转换得到的bit值和寻址到的目标比特位进行位或运算,完成新一轮告警采集内容在队列中的入队。
2.根据权利要求1所述的基于位运算的软件防抖方法,其特征在于,所述方法中以队列首部作为每一轮记录新的告警采集内容的bit位,并且,在完成每一轮告警采集内容在队列中的入队后,执行一次队列中由队列首部向队列尾部的单bit位的整体单向移动;或者,在每一轮需要执行告警采集内容在队列中的入列操作时,执行一次队列中由队列首部向队列尾部的单bit位的整体单向移动;
其中,所述单bit位的整体单向移动,队列尾部是指队列中的每一个bit位在保持既有前后相邻关系不变的情况下,都向队列尾部方向平移一位。
3.根据权利要求2所述的基于位运算的软件防抖方法,其特征在于,所述寻址到相应队列的记录目标bit位,具体为:寻址到相应队列的首部。
4.根据权利要求1所述的基于位运算的软件防抖方法,其特征在于,所述方法中以队列尾部作为每一轮记录新的告警采集内容的bit位,并且,在完成每一轮告警采集内容在队列中的入队后,执行一次队列中由队列尾部向队列首部的单bit位的整体单向移动;或者,在每一轮需要执行告警采集内容在队列中的入列操作时,执行一次队列中由队列首部向队列首部的单bit位的整体单向移动;
其中,所述单bit位的整体单向移动,是指是指队列中的每一个bit位在保持既有前后相邻关系不变的情况下,都向队列首部方向平移一位。
5.根据权利要求4所述的基于位运算的软件防抖方法,其特征在于,所述寻址到相应队列的记录目标bit位,具体为:寻址到相应队列的...
【专利技术属性】
技术研发人员:林飞浪,刘勇刚,
申请(专利权)人:烽火通信科技股份有限公司,
类型:发明
国别省市:湖北;42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。