Arduino外部中断使用与外部中断引脚资源

时间:2022-09-18 23:29:25

使用attachInterrupt函数

函数参数

1,digitalPinToInterrupt(pin)   使用的中断,传入引脚号

2,ISR,中断处理函数的名称

3,触发中断的引脚状态变化

  • LOW 引脚低电平触发中断
  • CHANGE 引脚电平变化触发中断
  • RISING 引脚电平由低到高触发中断
  • FALLING 引脚电平由高到低触发中断
  • HIGH 引脚低高平触发中断(Arduino Due 板子才有)

各板子的外部中断引脚号

外部中断引脚号

板子型号 int.0 int.1 int.2 int.3 int.4 int.5
Uno, Ethernet 2 3        
Mega2560 2 3 21 20 19 18
32u4 based (e.g Leonardo, Micro) 3 2 0 1 7  

 Arduino Due所有数字引脚,ArduinoZero所有数字引脚除了引脚4

示例程序如下


int pin = 13;
volatile int state = LOW;

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

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

void blink(){
    state = !state;
}