kingepoch 发表于 2013-8-12 17:18:25

请教中断问题

int on_off = LOW;
void setup()
{
pinMode(13, OUTPUT);
attachInterrupt(0, falling, RISING);
}
void loop()
{
pinMode(13,on_off);
}

void falling()
{
on_off = !on_off;

}

代码如上:

arduino uno板子,5v电压连接限位开关com端,no端连接2脚。


1.闭合限位开关后,led亮起,松开后过2秒左右led闪烁
2.再次闭合限位开关后,led熄灭,松开后过2秒左右led闪烁


请问这个led闪烁是什么原因?我的理解是led不应该亮起并闪烁。


谢谢大侠们帮忙!


kingepoch 发表于 2013-8-12 17:35:36


int on_off = 0;
void setup()
{
pinMode(13, OUTPUT);
attachInterrupt(0, falling, RISING);
}

中断能正常产生,但是松开开关后led过几秒后会亮起并且闪烁

中断产生后,on_off置位会有效,即中断on_off=1,中断什么时候可以on_off = 0。
void loop()
{
if(on_off == 1)
pinMode(13,HIGH);
else
pinMode(13,LOW);
}

void falling()
{
if(on_off==1)
on_off = 0;
else
on_off = 1;

}

林定祥 发表于 2013-8-12 20:52:03

限位开关输入端口用一个下拉电阻,避免悬空。中断程序中插入适量的延迟,可以避免卡关接触瞬间的抖动(200ms)

kingepoch 发表于 2013-8-13 15:04:05

林定祥 发表于 2013-8-12 20:52 static/image/common/back.gif
限位开关输入端口用一个下拉电阻,避免悬空。中断程序中插入适量的延迟,可以避免卡关接触瞬间的抖动(200m ...

谢谢,回答:handshake
页: [1]
查看完整版本: 请教中断问题