応用情報技術者過去問題 平成23年特別 午後問7  

ヤマダさん  
(No.1)
応用情報技術者過去問題 平成23年特別 午後問7  のフローで①の待ち時間の箇所のループの箇所ですが、矢印が上に戻っていないのはなぜでしょうか。
2018.08.13 22:01
助け人さん 
AP ゴールドマイスター
(No.2)
まず、図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の状態が変化したときに、状態が安定するまで待ち合わせる処理である」は、一見、①が一定時間待ち合わせるためのループかと思わせます。
「①の処理は、・・・待ち合わせる処理である」ではなく、
「①の処理は、・・・待ち合わせるために工夫した処理である」が本音です。
2018.08.14 00:30

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop