EINT (外部中斷 / External Interrupt)
板上的 USR 按鈕對應到腳位 P6 (GPIO37/EINT20),所以如果要得知該腳位的狀態,一種方式是透過 polling 不斷地呼叫 digitalRead 來取得資訊。除此之外,還有另一種讀取資訊的方式是藉由硬體外部中斷的功能,使用 Arduino EINT 相關 API 來進行操作。
使用 Digital Read 進行讀取
將 LED 腳位從 13 改為 7:
const int ledPin = 7; // the number of the LED pin
將按鈕腳位定義從 2 改為 6:
const int buttonPin = 6; // the number of the pushbutton pin
使用 EINT API 進行讀取
#include "Arduino.h"
const int led = 7; // USR LED pin is P7
const int usr_btn = 6; // USR BTN pin is P6
int val = 0; // Variable that stores LED state.
void pin_change(void)
{
digitalWrite(led, val);
val = !val;
Serial.println("button pressed");
}
void setup() {
pinMode(led, OUTPUT);
attachInterrupt(usr_btn, pin_change, RISING);
Serial.begin(9600);
}
void loop() {
delay(1000);
}
Last updated