arduino中断的使用 - ZhangTory's NoteBlog - 张耀誉的笔记博客

arduino中断的使用

既然看到了这里,就不用我解释是中断了吧?

下面是以外部中断为例讲解arduino的中断使用。

  • 中断命令:
attachInterrupt(interrupt, function, mode);
  • 参数:
interrupt:中断引脚数
function:中断发生时调用的函数,此函数必须不带参数和不返回任何值。该函数有时被称为中断服务程序。
mode:定义何时发生中断以下四个contstants预定有效值:
LOW 当引脚为低电平时,触发中断
CHANGE 当引脚电平发生改变时,触发中断
RISING 当引脚由低电平变为高电平时,触发中断
FALLING 当引脚由高电平变为低电平时,触发中断.

要注意的是:
arduino不同型号外部中断的引脚和数量是有区别的。
以uno为例,只有2个外部中断,分别是:数字引脚2–外部中断0、数字引脚3–外部中断1。

  • 例子:
int pin = 13;
volatile int state = LOW;

void setup()
{
pinMode(pin, OUTPUT);
attachInterrupt(0, blink, CHANGE);
}

void loop()
{
digitalWrite(pin, state);
}

void blink()
{
state = !state;
}

我们看到attachInterrupt(0, blink, CHANGE);意思是使用外部中断0,那么电路上我们应该对应数字引脚2。CHANGE意思是当数字引脚2的电平发生变化的时候,可以是从0->1和可以是1->0。blink意思是当中断发生时执行blink这个函数。就是这么简单!

另外补充一句,在中断函数中不要使用pirnt,这样arduino会卡死!

添加新评论

电子邮件地址不会被公开,评论内容可能需要管理员审核后显示。