极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10407|回复: 3

请教中断问题

[复制链接]
发表于 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不应该亮起并闪烁。


谢谢大侠们帮忙!


回复

使用道具 举报

 楼主| 发表于 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)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-13 15:04:05 | 显示全部楼层
林定祥 发表于 2013-8-12 20:52
限位开关输入端口用一个下拉电阻,避免悬空。中断程序中插入适量的延迟,可以避免卡关接触瞬间的抖动(200m ...

谢谢,回答
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-8 20:44 , Processed in 0.038067 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表