組込み・ファームウェア

ソフトウェアでスイッチのチャタリングを取り除く方法として最も適切なものはどれか。

  1. A端子を読む回数を増やし、1回でも1になったら押されたとみなす
  2. B数ミリ秒おきに端子を読み、同じ値が何回か続いたときに初めて状態が変わったとみなす
  3. Cスイッチが押されたら、マイコンを再起動する
答えと解説を見る

正解:B. 数ミリ秒おきに端子を読み、同じ値が何回か続いたときに初めて状態が変わったとみなす

チャタリングは数ミリ秒で収まるので、例えば5 msおきに端子を読み、同じ値が3回続いたら状態が変わったと判断すれば、跳ねている間の変化を無視できます。タイマ割り込みで定期的に読む形にすると、ほかの処理を止めずに済みます。待ち時間を長くしすぎると反応が遅く感じられるので、スイッチの特性に合わせて決めます。

  • A. 跳ねている間の変化をすべて拾ってしまいます。
  • B. 正しい。跳ねている間の変化を無視できます。
  • C. 再起動は必要ありません。
この分野を解く 分野ページへ

組込み・ファームウェアのほかの問題

  1. 16 MHzのクロックをプリスケーラで16分周したものでタイマを数え、1000カウントごとに割り込みを起こす設定にした。割り込みの間隔はいくらか。
  2. 周期が1000カウントのPWM信号で、1周期のうち250カウントの間だけ出力を1(High)にしている。デューティ比はいくらか。
  3. マイコンでLEDの明るさやモーターの回転の速さを調整するのによく使われる方法はどれか。
  4. マイコンのタイマのインプットキャプチャ機能の用途として正しいものはどれか。
  5. 割り込みハンドラの中で避けるべきこととして最も適切なものはどれか。