Arduinoで外部割込みとシリアル割り込み
・外部割込み
- Arduino の attachInterrupt() での割り込み処理
- Arduinoの概要
- 割り込みと ISR - 基礎からの IoT 入門
- Arduino入門:外部割り込み | easy labo
簡単なスケッチを
#define INT_PIN 2 void gpio_isr(){ Serial.println("warikomi"); } void setup() { Serial.begin(115200); pinMode(INT_PIN, INPUT); // 割り込みのためのピンを設定 attachInterrupt(digitalPinToInterrupt(INT_PIN), gpio_isr, FALLING); // 割り込み開始 } void loop(){ }
pinMode()で割り込みに使うピンを入力に設定
attachInterrupt() で割り込みに使うピンとコールバック関数とピンの状態がどういうときに割り込みを発生させるかを設定。
ピンは普通のピン番号と割り込みに使うピン番号は違うらしいのでdigitalPinToInterrupt() で変換
・シリアル割り込み
void serialEvent() { } という名前でやりたい処理の関数を定義します。
ただ、割り込みと言っても loop()関数が一周したあとにserialEvent() が実行されているだけなので、割り込みっぽくないです。