応用情報技術者 2017年 春期 午前2 問22
問題文
16ビットのダウンカウンタを用い、カウンタの値が0になると割込みを発生するハードウェアタイマがある。カウンタに初期値として10進数の150 をセットしてタイマをスタートすると、最初の割込みが発生するまでの時間は何マイクロ秒か。ここで、タイマの入力クロックは16MHzを32分周したものとする。
選択肢
ア:0.3
イ:2
ウ:150
エ:300(正解)
16ビットダウンカウンタの割込み時間計算【午前2 解説】
要点まとめ
- 結論:初期値150の16ビットダウンカウンタは約300マイクロ秒で割込みを発生します。
- 根拠:16MHzのクロックを32分周すると、1カウントあたりの時間は2μs。150カウントで150×2μs=300μsとなるためです。
- 差がつくポイント:クロック分周の理解とカウンタのカウント単位時間の正確な計算が合否を分けます。
正解の理由
16MHzのクロックを32分周すると、タイマの入力クロック周波数は
となり、1クロックの周期は
です。
カウンタは150から0までカウントダウンするので150回のクロックが必要で、
となり、選択肢の中で正しいのはエ: 300です。
となり、1クロックの周期は
です。
カウンタは150から0までカウントダウンするので150回のクロックが必要で、
となり、選択肢の中で正しいのはエ: 300です。
よくある誤解
クロック周波数の分周を忘れて16MHzのまま計算し、時間を過小評価することが多いです。
また、カウンタの初期値をそのまま時間と誤解しがちです。
また、カウンタの初期値をそのまま時間と誤解しがちです。
解法ステップ
- タイマの入力クロック周波数を計算する(16MHz ÷ 32 = 0.5MHz)
- 1クロックの周期を求める(1 ÷ 0.5MHz = 2μs)
- カウンタの初期値150をカウント数とみなす
- 割込み発生までの時間を計算(150 × 2μs = 300μs)
- 選択肢から該当する値を選ぶ
選択肢別の誤答解説
- ア: 0.3μs
→ クロック分周を考慮せず、1クロック周期を誤認した結果。 - イ: 2μs
→ 1クロック周期のみを答えた誤り。カウント数を掛け忘れ。 - ウ: 150μs
→ クロック周期を1μsと誤認し、分周を無視した計算ミス。 - エ: 300μs
→ 正解。分周後のクロック周期とカウント数を正しく計算。
補足コラム
16ビットカウンタは最大65536カウント可能ですが、初期値を設定することで任意の時間を計測できます。分周設定はタイマの分解能と最大計測時間のバランスを調整する重要な要素です。割込みタイミングの正確な把握はリアルタイム制御に不可欠です。
FAQ
Q: なぜ分周しないといけないのですか?
A: クロック周波数が高すぎるとタイマのカウントが速すぎて扱いにくいため、分周して適切な周期に調整します。
A: クロック周波数が高すぎるとタイマのカウントが速すぎて扱いにくいため、分周して適切な周期に調整します。
Q: 16ビットカウンタの最大時間はどう計算しますか?
A: 最大カウント数65536に1クロック周期を掛けて計算します。分周設定により変わります。
A: 最大カウント数65536に1クロック周期を掛けて計算します。分周設定により変わります。
関連キーワード: ダウンカウンタ、ハードウェアタイマ、クロック分周、割込み時間計算、タイマ周期

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

