小弟最近在玩msp430f149开发板,我用它搭了一个红外检测电路(买的现成的模块),检测液体滴定的速度~~~
之前看过郭天祥的视频,了解按键去抖可以使用延时函数,我测试了下,这里使用延时函数的效果不是很好
请问大神:我想实时检测IO口中断,使用的是上升沿中断,当红外检测电路检测到液体,会产生一个高电平。
如果不想在中断服务函数中使用延时函数,还有什么其它去抖的好办法吗(针对msp430单片机)?恳请赐教!!!
如下是我使用延时的中断服务程序
#pragma vector=PORT1_VECTOR
__interrupt void Port_1(void)
{
P1IFG &= ~BIT0;
counter_val++;
Delay_us(1000);
}
此帖出自
小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
没有太明白你的应用,感觉像是检测类似输液的时候药液的下滴速度吧?这样的应用就跟自行车码表类似了,你检测的应该是一串脉冲,模块里面已经做好去抖了,而且由于下滴速度未知,你延时时间长了有可能漏掉了有用的脉冲。一般类似的应用中抖动还是比较小的,虽然不能排除,这个时候用一个施密特门电路进行去抖就可以了,因为很多单片机的外部中断功能都是施密特输入的,所以就不用单独的去外部加东西了。
我做按键检测的时候都是在定时器中读取和判断去抖的。如果在去抖时间内电平翻转了就不认为是有效输入了,因为按键一般都比较慢,没有用中断
一周热门 更多>