C-Styleで割り込み(その2)

割り込みをもう少しテストしてみる。

超音波センサ(PING)は超音波を使い距離を測る。
超音波も音なので、音速を超えた処理はできず、一般的に超音波センサは遅い。
ja.wikipedia.org

センサから出た超音波が1m先の何かに反射して戻ってくる場合、往復で2m。
音速を340m/sとしたとき、2mの往復にかかる時間は約0.0059秒=5.9ミリ秒。
ja.wikipedia.org


C-StylePINGを使う場合にかかる時間と割り込み処理について、次のプログラムで確認する。
f:id:ohguma:20190223141336p:plain

メインプログラムでは以下を行う。

  • 変数A、Bの初期化
  • タイマー1を使い、1秒間のループ
  • ループ内で
    • PING計測し変数Cに代入、
    • 計測回数を変数Bでカウント
  • 1秒のループ後に、変数A、B、Cを表示
    • 変数Cは1秒間のループ中の最後に計測したPINGの値となる

割り込みで処理されるサププログラムでは

  • サブプログラム実行回数を変数Aでカウント


結果は次の通り。今回PINGは未接続だったため、変数Cは0となった。
f:id:ohguma:20190223141357p:plain

PING処理は割り込みに比べると相当遅い事がわかる。