こんばんは!
今回は割り込み処理関数「attachInterrupt」の仕様について説明します。
attachInterrupt関数
attachInterruptは次のように記述して使用します。
1 | attachInterrupt(int,fun,mode); |
各パラメータは以下の通りです。
・int: 割り込み番号
UNOの場合:0(D2ピン)、1(D3ピン)
Leonardoの場合:0(D3ピン)、1(D2ピン)、2(D0ピン)、3(D1ピン)、4(D7ピン)
・fun: 割り込みする関数
引数も戻り値もなしとする。
・mode: 割り込み関数を実行するための条件
HIGH:ピンの値がHIGHのとき
LOW:ピンの値がLOWのとき
RISING:ピンの値がHIGHからLOWに変化したとき
FALLING:ピンの値がLOWからHIGHに変化したとき
CHANGE:ピンの値が変化したとき
注意事項
attachInterrupt関数を使用する際には以下の注意点があります。
・割り込みする関数ではdelay()を使用することはできません。
・millis()の戻り値は増加しません。
・割り込み関数の処理が長いと割り込み処理が止まってしまい、シリアル通信のデータ等が失われてしまう可能性があります。
・グローバル変数を参照する場合にはその変数にvolatileをつけて修飾する必要があります。
今回はこれで終わります。
ではまた!