8H4K64TL单片机IO口中断,如何延时去抖
使用STC8H4K64TL单片机IO口中断连接光耦做一个计数器,如何延时去抖,之前做矩阵键盘,IO赋值高电平,判断为低电平后,延时10ms,再判断,如果用中断,怎么延时去抖用执行其他程序的时间消抖,不要使用延时函数,更不要在中断内使用延时函数 一个简单粗暴的解决思路:
搞个全局变量,中断触发只干一件事,赋值
去抖还用你原来的代码,读io状态改为都这个变量,用完重置变量
一个在中断内闭环的思路:
需要有个外部计时变量1ms加一这种、中断触发变量、触发时刻记录变量
触发间隔 = 外部计时变量 - 触发时刻记录变量
触发间隔 > x,作废,视为第一次触发
第一次触发,中断触发变量赋值,触发时刻记录变量赋值
后续触发,触发间隔 > 消抖时间,有效,执行
页:
[1]