C-Styleで割り込み(その2)
割り込みをもう少しテストしてみる。
超音波センサ(PING)は超音波を使い距離を測る。
超音波も音なので、音速を超えた処理はできず、一般的に超音波センサは遅い。
ja.wikipedia.org
センサから出た超音波が1m先の何かに反射して戻ってくる場合、往復で2m。
音速を340m/sとしたとき、2mの往復にかかる時間は約0.0059秒=5.9ミリ秒。
ja.wikipedia.org
C-StyleでPINGを使う場合にかかる時間と割り込み処理について、次のプログラムで確認する。
メインプログラムでは以下を行う。
- 変数A、Bの初期化
- タイマー1を使い、1秒間のループ
- ループ内で
- PING計測し変数Cに代入、
- 計測回数を変数Bでカウント
- 1秒のループ後に、変数A、B、Cを表示
- 変数Cは1秒間のループ中の最後に計測したPINGの値となる
割り込みで処理されるサププログラムでは
- サブプログラム実行回数を変数Aでカウント
結果は次の通り。今回PINGは未接続だったため、変数Cは0となった。
PING処理は割り込みに比べると相当遅い事がわかる。