基本ライブラリ
デジタルIO
アナログIO
拡張IO
時間
数学
三角関数
乱数
ビットバイト操作
割り込み
シリアル通信
標準ライブラリ
Ethernet
Ethernetサーバー
Ethernetクライアント
サーボモーター
ステッピングモーター
キャラクタ液晶表示
EEPROM
SPI通信
I2C通信(Wire)
メモリカード
メモリカード(File操作)
画像処理
周期処理
時計(RTC)
ユーティリティ
割り込み
外部端子の状態で割り込み処理をするためのライブラリです。
attachInterrupt
- 概要
- 外部端子からの信号に応じて実行する関数を指定します。
- 文法
- attachInterrupt(pin, void(*)(void) func, mode)
- パラメータ
- pin: ピン番号(11, 12)
func: 割り込み発生時に呼び出す関数
mode:
LOW(ピンがLOWになったとき発生)
CHANGE(ピンの状態が変化したとき発生)
FALLING(ピンの状態がHIGHからLOWに変化したとき発生)
RISING(ピンの状態がLOWからHIGHに変化したとき発生) - 戻り値
- なし
detachInterrupt
- 概要
- attachInterruptで指定した割り込みを解除します。
- 文法
- detatachInterrupt(pin)
- パラメータ
- pin: ピン番号(11, 12)
- 戻り値
- なし
interrupts
- 概要
- noInterruptsで無効にした割り込みを再度許可します。
- 文法
- interrupts()
- パラメータ
- なし
- 戻り値
- なし
noInterrupts
- 概要
- 割り込み処理を禁止します。バックグラウンドで実行する重要なタスクも禁止されるため、どうしてもタイミングを崩したくない処理を行うときに使用してください。
- 文法
- noInterrupts()
- パラメータ
- なし
- 戻り値
- なし
サンプルプログラム
#include <Arduino.h>
int pin = PIN_LED0;
volatile int state = LOW;
void blink()
{
state = !state;
}
void setup()
{
pinMode(pin, OUTPUT);
attachInterrupt(0, blink, CHANGE);
}
void loop()
{
digitalWrite(pin, state);
}