平成22年度春期 エンベデッドシステムスペシャリスト試験 午前II 問4
【問題4】
表のインターバルタイマを用いて約20ミリ秒ごとにタイマ割込みを発生させたいとき,16ビットタイマコンペアレジスタに設定する値は10進数で幾つか。ここで,システムクロックは32MHzとする。
【解説】
タイマ割込みを発生させるための計算は以下の手順で行います。
- タイマクロックの周期を求める
システムクロックが32MHzなので、タイマクロックの周期は 1秒 ÷ 32,000,000 = 31.25ナノ秒。
- 20ミリ秒に相当するカウント数を計算する
タイマ割込みを20ミリ秒ごとに発生させるには、20ミリ秒 ÷ タイマクロックの周期 = 640,000カウント。
- タイマクロックを32分周して使用
問題文の表より、「タイマクロックを32分周したもの」が使用されます。分周後のクロック周波数は 32,000,000 ÷ 32 = 1,000,000Hz(1マイクロ秒ごとにカウント)。
- 分周後のカウント数を再計算
分周後のクロック周期を用いると、20ミリ秒 ÷ 1マイクロ秒 = 20,000カウント。
- コンペアレジスタに設定する値を求める
16ビットタイマコンペアレジスタには「カウント数 – 1」を設定します。20,000 – 1 = 19,999。
出典:平成22年度 春期 エンベデッドシステムスペシャリスト試験 午前II 問4