HOME»応用情報技術者試験掲示板»応用情報技術者過去問題 平成23年特別 午後問7
投稿する
応用情報技術者過去問題 平成23年特別 午後問7 [1212]
ヤマダさん(No.1)
応用情報技術者過去問題 平成23年特別 午後問7 のフローで①の待ち時間の箇所のループの箇所ですが、矢印が上に戻っていないのはなぜでしょうか。
2018.08.13 22:01
助け人さん(No.2)
★AP ゴールドマイスター
まず、図5の①の箇所は、見ての通り、ループにはなっていません。
チャタリングが発生すると、短時間にONとOFFの繰返しが発生しますが、そのうち、どちらかの状態に収まります。また、図5のクロックカウンタ割込みハンドラは、本文にあるように、1ミリ秒ごとに起動されます。
①では、1ミリ秒ごとに、D14を直前のSWの値(prev)と比較します。
もし、異なれば、cntに10を設定し、直後にcntを1減じます。
もし、同じなら、cntが0になっていなければcntを1減じ、cntが0になっていればswStateに直前のSWの値(prev)を設定します。
つまり、D14が直前のSWの値(prev)と異なった場合、D14が1ミリ秒ごとの10回連続同じではじめてSWの状態がその値に安定したとします。
本文にある「①の処理は、SWの状態が変化したときに、状態が安定するまで待ち合わせる処理である」は、一見、①が一定時間待ち合わせるためのループかと思わせます。
「①の処理は、・・・待ち合わせる処理である」ではなく、
「①の処理は、・・・待ち合わせるために工夫した処理である」が本音です。
チャタリングが発生すると、短時間にONとOFFの繰返しが発生しますが、そのうち、どちらかの状態に収まります。また、図5のクロックカウンタ割込みハンドラは、本文にあるように、1ミリ秒ごとに起動されます。
①では、1ミリ秒ごとに、D14を直前のSWの値(prev)と比較します。
もし、異なれば、cntに10を設定し、直後にcntを1減じます。
もし、同じなら、cntが0になっていなければcntを1減じ、cntが0になっていればswStateに直前のSWの値(prev)を設定します。
つまり、D14が直前のSWの値(prev)と異なった場合、D14が1ミリ秒ごとの10回連続同じではじめてSWの状態がその値に安定したとします。
本文にある「①の処理は、SWの状態が変化したときに、状態が安定するまで待ち合わせる処理である」は、一見、①が一定時間待ち合わせるためのループかと思わせます。
「①の処理は、・・・待ち合わせる処理である」ではなく、
「①の処理は、・・・待ち合わせるために工夫した処理である」が本音です。
2018.08.14 00:30