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

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


問題文

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

選択肢

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

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

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

正解の理由

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

解法ステップ

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

選択肢別の誤答解説

  • ア:1
    タイマクロックの周波数や、20ミリ秒に必要なカウント数を正しく反映できていません。
  • イ:19
    20ミリ秒から1を引いただけの値です。比較値は時間をそのまま数値化するのではなく、タイマクロックの周期に基づいて求めます。
  • ウ:1,999
    必要なカウント数を10分の1に見積もっています。タイマクロックは1MHzなので、20ミリ秒では20,000カウントが必要です。
  • エ:19,999
    20,000カウント分の間隔を作る値です。カウンタが0から始まるため、設定値はカウント数から1を引いた値になります。

よくある誤解

  • 20,000カウントなら設定値も20,000だと思う
    カウンタは0から始まるため、0から19,999までで20,000個の値を数えます。
  • システムクロックをそのまま使って計算する
    この問題では、タイマクロックはシステムクロックを32分周したものです。分周後のクロックで計算します。
  • ミリ秒とマイクロ秒の換算を間違える
    です。20ミリ秒は20,000マイクロ秒です。

補足コラム

16ビットのタイマカウンタが表せる値は、0〜65,535です。今回の比較値19,999はこの範囲内なので、16ビットのタイマで設定できます。

FAQ

なぜ比較値から1を引くのですか?
カウンタが0から始まり、0も1カウント分として数えるためです。たとえば、0から3まで数えると、カウント値は0、1、2、3の4つです。
タイマクロック1MHzから、1カウントが1マイクロ秒と分かるのはなぜですか?
1MHzは1秒間に100万回のクロックを意味します。したがって、1周期は 秒、すなわち です。

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

\ せっかくなら /

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

クイズ画面へ遷移する→

すぐに利用可能!

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

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