応用情報技術者 平成29年春期 午前問22
16ビットのダウンカウントのカウンタを用い,そのカウンタの値が0になると割込みを発生させるハードウェアタイマがある。カウンタに初期値として10進数の150をセットしてタイマをスタートすると,最初の割込みが発生するまでの時間は何マイクロ秒か。ここで,タイマクロックは16MHzを32分周したものとする。
今日はこの問題を解説します。
知っていれば1分で解けますが、色々数字が出てくるので、知らないと何をすればいいのか分からないですよね。
「ダウンカウントのカウンタ」とか「分周」などはあまりピンとこない方も多いのではないでしょうか。
文系の方でも理解できるように出来る限りわかりやすく解説するので、是非最後までご覧ください。
ダウンカウントのカウンタについて
これはキッチンタイマーみたいなものです。
最初に設定した数字から少しずつ数字を減らしていき、0になると何らかの出力が起きます。
この問題では、初期値として150をセットしているので、150から少しずつ数字を減らしていき、0になるまで続けます。
0になると「割込み」が発生します。
「タイマクロックは16MHzを32分周したもの」とは?
分周(ぶんしゅう)って?
分周というのは「周波数を分割する」ということです。英語ではdivideといいます。
分周器というものを使うと、周波数を調整できます。
例えば、「1/4に分周する」または「4分周する」というと、「周波数を4分の1にする」ということになります。
問題では「タイマクロックは16MHzを32分周したもの」とあるので、タイマクロックは16MHzを32分の1にしたものです。
タイマクロックというのは、タイマの周期のことで、1周期でカウントが1減ります。
問題の解説
「タイマクロックは16MHzを32分周したもの」とあるので、
タイマクロックを求めると、16MHz / 32 =0.5MHz です。
周期1回あたりでは、1s / 0.5M = 2 / 10^6(秒) です。
カウンタを150から0にするためには、この周期を150回繰り返せばいいので、
2/ 10^6 × 150 =300 / 10^6(秒)となります。
1/10^6秒が1マイクロ秒ですから、
求める答えは300マイクロ秒となります。
まとめ
応用情報の計算問題を解説しました。
「分周」の意味さえ分かればそんなに怖い問題ではないですが、馴染みない方だと「分周って何ぞや」と思ってしまうことも多いのではないでしょうか。
応用情報の計算問題は「知っていれば大したことない」問題が多いので、基本的な理解を深めていけば間違いなく得点源になります。
今後も、基本情報・応用情報の計算問題の解説を定期的に載せていきます!!