极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12682|回复: 4

中断函数中使用delay延迟是否可以

[复制链接]
发表于 2013-8-14 11:21:19 | 显示全部楼层 |阅读模式
代码如下:
int on_off = 0;
void setup()
{
  pinMode(13, OUTPUT);
  attachInterrupt(0, falling, RISING);
  attachInterrupt(0, low, LOW);
}

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;
delay(2000);
}

void low()
{
on_off=1;
}

1>falling函数里面使用delay,是否有问题呢?
2>一个中断源使用两个模式,是否有问题?


谢谢
回复

使用道具 举报

发表于 2013-8-14 11:39:00 | 显示全部楼层
1、中断函数里不应该使用任何延迟函数及任何长时间运行。
2、不存在2个模式的说法,只生效了最后一个。
回复 支持 反对

使用道具 举报

发表于 2013-8-14 11:53:55 | 显示全部楼层
试一试吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-14 12:02:36 | 显示全部楼层
pathletboy 发表于 2013-8-14 11:39
1、中断函数里不应该使用任何延迟函数及任何长时间运行。
2、不存在2个模式的说法,只生效了最后一个。

谢谢哈,
5v电压接限位开关com端,No端接电阻在接到中断0,中断执行时不稳定,如果开关按的快点,就不能正常切换等的亮灭,led会再限位开关松开几秒后不停的闪烁,这是什么原因呢?
回复 支持 反对

使用道具 举报

发表于 2013-8-14 12:13:35 | 显示全部楼层
中断模式改成CHANGE能满足你的需求
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-9 01:56 , Processed in 0.098570 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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