(2015.5.20 作成)
Arduinoを使用して割り込みを行うクラスです。内部的にはattachInterruptを呼び出しているだけです。コンストラクタへの引数がそのままattachInterruptへ渡されます。
コンストラクタ |
||
プロトタイプ |
InterruptIn( const uint8_t &interrupt, void (*ISR)(void),
const ITmode &mode = IT_Rising); |
|
戻り値 |
なし |
|
引数 |
interrupt |
割り込み番号 0または1 |
ISR |
割り込み発生時に呼び出す関数 void FOO(void) 型です。 |
|
ITMode |
立ち上がり、立下りエッジで割り込み発生するか |
|
備考 | 自動で割り込みが許可になります。手動で割り込みOn/Offを行いたいときは直後にdisable_irq()を呼び出してください。 |
Arduino UNOの場合割り込み番号0がピン2, 割り込み番号1がピン3に対応しています。
#include "Wire.h" //最初のコンパイル時だけコメント解除 #include "SPI.h" #include "DKS_GPIO_Arduino.h" DKS::DigitalOut *ld; //LED DKS::InterruptIn *button; //Push Button void isr(void) { if (button->Debounce() == 1) //もし簡易チャタリング対策を行うなら ld->toggle(); } void setup() { ld = new DKS::DigitalOut(4); // ピン4にLEDを接続 button = new DKS::InterruptIn(0, isr, DKS::IT_Rising); //ピン2にボタンを接続 } void loop() { }