外部中断在不同的Arduino型号上位置也不同,只有外部中断发生在以下端口,Arduino才能捕获到,以下例举了常见的几种型号的外部中断引脚标号。
型号 | int.0 | int.1 | int.2 | int.3 | int.4 | int.5 |
UNO\Ethernet | 2 | 3 | ||||
Mega2560 | 2 | 3 | 21 | 20 | 19 | 18 |
Leonardo | 3 | 2 | 0 | 1 | ||
Due | 所有IO口均可 |
例程
外部中断的使用也是非常简单的,下面我们来看一个官方提供的例程。
int pin = 13;
volatile int state = LOW;
void setup()
{
pinMode(pin, OUTPUT);
attachInterrupt(0, blink, CHANGE);//当int.0电平改变时,触发中断函数blink
}
void loop()
{
digitalWrite(pin, state);
}
void blink()//中断函数
{
state = !state;
}