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

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


問題文

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

選択肢

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

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

タイマ比較値の算出【午前2解説】

正解の理由

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

解法ステップ

  1. システムクロックを分周し、タイマクロックを求めます。
  2. タイマクロックの周期を求めます。
    の周期は です。
  3. 20ミリ秒の間に必要なカウント数を求めます。
    回です。
  4. カウンタが0から始まることを考慮し、比較値を1つ小さくします。

選択肢別の誤答解説

  • ア:1
    タイマクロックが1MHzになることと、レジスタに設定する比較値を混同した値です。20ミリ秒分のカウント数を求める必要があります。
  • イ:19
    20から1を引いていますが、ミリ秒単位の数値をそのまま使っています。1マイクロ秒ごとのカウント数に換算できていません。
  • ウ:1,999
    必要なカウント数を実際より少なく見積もっています。タイマクロックは100kHzではなく、システムクロックの32分周である1MHzです。
  • エ:19,999
    1MHzのタイマクロックで20ミリ秒間に必要な20,000回のカウントを、0始まりの比較値に換算した値です。

よくある誤解

  • 分周を掛けてしまう
    「32分周」は周波数を32で割ることです。32MHzに32を掛けるのではなく、32MHzを32で割って1MHzとします。
  • 20ミリ秒をそのまま比較値にする
    タイマの比較値は時間そのものではなく、カウンタの値です。タイマクロックの周期を使って、必要なカウント数に換算します。
  • 0から数える場合の1を引き忘れる
    必要なカウント数が20,000回でも、カウンタ値は0から始まります。そのため、比較値は20,000ではなく19,999です。

補足コラム

比較値が19,999の場合、カウンタは0から19,999までの値を取ります。これは合計20,000カウントに相当します。したがって、タイマクロックが1MHzなら、割込み間隔は約20ミリ秒になります。

FAQ

Q. 比較値を20,000にすると、どうなりますか?
A. 0から20,000まで数えるため、合計20,001カウントとなり、割込み間隔は約20ミリ秒より1マイクロ秒長くなります。
Q. タイマコンペアレジスタは16ビットですが、19,999を設定できますか?
A. はい。16ビットで表せる値は0〜65,535なので、19,999は設定可能な範囲内です。

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

\ せっかくなら /

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

クイズ画面へ遷移する→

すぐに利用可能!

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

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