小弟最近在玩msp430f149开发板,我用它搭了一个红外检测电路(买的现成的模块),检测液体滴定的速度~~~
之前看过郭天祥的视频,了解按键去抖可以使用延时函数,我测试了下,这里使用延时函数的效果不是很好
请问大神:我想实时检测IO口中断,使用的是上升沿中断,当红外检测电路检测到液体,会产生一个高电平。
如果不想在中断服务函数中使用延时函数,还有什么其它去抖的好办法吗(针对msp430单片机)?恳请赐教!!!
如下是我使用延时的中断服务程序
#pragma vector=PORT1_VECTOR
__interrupt void Port_1(void)
{
P1IFG &= ~BIT0;
counter_val++;
Delay_us(1000);
}
此帖出自
小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2. 状态机;
- #pragma vector=PORT1_VECTOR
- __interrupt void Port_1(void)
- {
- P1IFG &= ~BIT0;
- if(delay_counter_val==0)
- {
- counter_val++;
- delay_counter_val=1000;
- }
- }
- 定时器中断()//s设定1μs的中断
- {
- if(delay_counter_val)delay_counter_val--;
- }
复制代码同样是延时去抖,但是可以不在中断里延时,而是在定时器里延时。
一周热门 更多>