組込み・ファームウェア
ソフトウェアでスイッチのチャタリングを取り除く方法として最も適切なものはどれか。
- A端子を読む回数を増やし、1回でも1になったら押されたとみなす
- B数ミリ秒おきに端子を読み、同じ値が何回か続いたときに初めて状態が変わったとみなす
- Cスイッチが押されたら、マイコンを再起動する
答えと解説を見る
正解:B. 数ミリ秒おきに端子を読み、同じ値が何回か続いたときに初めて状態が変わったとみなす
チャタリングは数ミリ秒で収まるので、例えば5 msおきに端子を読み、同じ値が3回続いたら状態が変わったと判断すれば、跳ねている間の変化を無視できます。タイマ割り込みで定期的に読む形にすると、ほかの処理を止めずに済みます。待ち時間を長くしすぎると反応が遅く感じられるので、スイッチの特性に合わせて決めます。
- A. 跳ねている間の変化をすべて拾ってしまいます。
- B. 正しい。跳ねている間の変化を無視できます。
- C. 再起動は必要ありません。