平成26年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問15
テクノロジ/コンピュータ構成要素インターバルタイマを用いて約 20 ミリ秒ごとにタイマ割込みを発生させたいとき,16 ビットタイマコンペアレジスタに設定する値は 10 進数で幾つか。ここで,システムクロックは 32 MHz とする。インターバルタイマの仕様は次のとおりである。 (注:本サイトでは原問題の表を文字表記に変換しています) タイマクロック:システムクロックを 32 分周したもの。 16 ビットタイマカウンタ:タイマクロックの立ち上がりに同期してインクリメントされる。16 ビットタイマコンペアレジスタからの初期化指示があると 0 で初期化される。 16 ビットタイマコンペアレジスタ:設定された値と 16 ビットタイマカウンタ値が一致するとタイマ割込みを発生し,16 ビットタイマカウンタに初期化指示を出す。
出典:平成26年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問15
- ア1
- イ19
- ウ1,999
- エ19,999
正解:エ
解説
タイマクロックはシステムクロック 32 MHz を 32 分周したものなので,周波数は 32×10⁶/32=1 MHz,すなわち周期は 1 マイクロ秒です。16 ビットタイマカウンタはこのタイマクロックに同期して 0 から 1 ずつインクリメントされ,設定値(コンペアレジスタの値)と一致した時点でタイマ割込みが発生し,カウンタが 0 に初期化されます。カウンタが 0 から始まり,設定値 N に達するまでに N+1 回のクロックが経過するため,割込み周期は (N+1) マイクロ秒になります。約 20 ミリ秒=20,000 マイクロ秒の周期を得るには,N+1=20,000,すなわち N=19,999 と設定します。
選択肢ごとの解説
- ア誤り。設定値が小さすぎ,タイマクロックがわずか 2 回カウントするだけで割込みが発生してしまい,20 ミリ秒には遠く及びません。
- イ誤り。設定値が小さすぎ,20 マイクロ秒程度の周期にしかならず,約 20 ミリ秒の周期を得ることはできません。
- ウ誤り。1/10 の桁を取り違えた値であり,この設定では約 2 ミリ秒周期にしかならず,約 20 ミリ秒の周期を得ることはできません。
- エ正しい。カウンタが 0 から 19,999 までカウントする 20,000 クロック分,すなわち 20,000 マイクロ秒(約 20 ミリ秒)ごとにタイマ割込みを発生させるには,コンペアレジスタに 19,999 を設定します。