表のインターバルタイマーを用いて約20ミリ秒ごとにタイマー割り込みを発生させたいとき、16ビットタイマーコンペアレジスタに設定する値は10進数で幾つか。
ここで、システムクロックは32MHzとする。
項目 | 説明 |
タイマークロック | システムクロックを32分周したもの |
16ビットタイマーカウンタ | タイマークロックの立ち上がりに同期してインクリメントされる。 16ビットタイマーコンペアマッチレジスタから初期化指示があると0で初期化される。 |
16ビットタイマーコンペアマッチレジスタ | 設定された値と16ビットタイマーカウンタ値が一致するとタイマー割込みを発生し、16ビットタイマーカウンタに初期化指示を出す。 |
ア | 1 |
イ | 19 |
ウ | 1,999 |
エ | 19,999 |
答え エ
【解説】
タイマークロックはシステムクロックを32分周したもので、システムクロックが32MHzなので、タイマークロック周波数は1MHzになる。
1MHzの周波数で20ミリ秒をカウントするには、20,000サイクル必要であり、16ビットタイマーカウンタは初期化されると0になり、タイマークロックの立ち上がりに同期してインクリメントするので、16ビットタイマーコンペアレジスタに設定する20,000サイクル目の値は19,999(エ)になる。
【キーワード】
・インターバルタイマー