戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

エンベデッドシステムスペシャリスト 2019年 午前2 問15


問題文

表のインターバルタイマを用いて約20ミリ秒ごとにタイマ割込みを発生させたいとき、16ビットタイマコンペアレジスタに設定する値は10進数で幾つか。ここで、システムクロックは32MHzとする。
エンベデッドシステムスペシャリスト 2019年 午前2 問15の問題画像

選択肢

ア:1
イ:19
ウ:1,999
エ:19,999(正解)

🔒 解説は解答すると表示されます

インターバルタイマの比較値【午前2解説】

正解の理由

システムクロックは32 MHzで、タイマクロックはその32分の1です。
タイマは1秒間に100万回カウントするため、1回のカウントにかかる時間は1マイクロ秒です。20ミリ秒の間に必要なカウント数は、次のとおりです。
カウンタは0から数え始めるため、20,000回分のカウント値は0から19,999までです。したがって、比較レジスタには19,999を設定します。該当する選択肢はエです。

解法ステップ

  1. タイマクロックを求めます。
  2. タイマクロックの周期を求めます。
  3. 20ミリ秒間のカウント回数を求めます。
    回
  4. カウンタが0から数えることを考慮し、比較値を求めます。

選択肢別の誤答解説

  • ア:1
    タイマクロックの周期や分周比の扱いを誤り、必要なカウント数を求められていません。
  • イ:19
    20ミリ秒を20として扱い、マイクロ秒単位でのカウント回数への換算を誤っています。
  • ウ:1,999
    タイマクロックの周波数、または時間単位の換算を誤った場合に生じる値です。必要なカウント数は20,000回です。
  • エ:19,999
    0から19,999までの値を数えると合計20,000回となり、1マイクロ秒ごとのカウントで約20ミリ秒になります。

よくある誤解

  • 「20ミリ秒分のカウント数が20,000回だから、比較値も20,000」と考える誤りです。カウンタが0から始まるため、比較値は1小さくなります。
  • システムクロックの32 MHzをそのままカウント周波数として使う誤りです。タイマクロックは32分周後の1 MHzです。
  • 1 MHzを「1マイクロ秒ごとに100万回」と取り違える誤りです。1 MHzは1秒間に100万回、つまり周期は1マイクロ秒です。

補足コラム

カウンタが0から比較値までの値を順に取る場合、1周期のカウント数は「比較値+1」です。そのため、必要なカウント数を とすると、比較レジスタの値は通常 になります。この問題では、20,000回のカウントに対して比較値は19,999です。

FAQ

Q. なぜ比較値を20,000にしないのですか?
A. カウンタが0から始まり、0もカウント値の一つとして含まれるためです。0から20,000まで数えると、カウント数は20,001回になります。
Q. タイマクロックの周期はどう求めますか?
A. 周波数の逆数です。1 MHzなら、秒、つまり1マイクロ秒です。

関連キーワード: インターバルタイマ、タイマクロック、分周、タイマコンペアレジスタ、カウンタ】【。
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?

クイズ画面へ遷移する→

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について