InterruptIn (Arduino)

(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() {
}