問題の概要
電池で動作するガスメータの問題です。電池で動作しているので消費電力には気を遣う装置なのかもしれません。タイマ0カウンタとタイマ1カウンタがあるのでそれぞれの役割を理解して問題を解く必要があります。カウンタの問題はエンベデッドでは定番らしいです。
問題と解答は公式サイトに載っています→平成21年春
解答
- 設問1 (1)消費電力を抑えるため
- 設問2 モードレジスタ: 81
- 設問3 (1)一定量のガスが流れるとカウンタの割込みが入り、ガス漏れ時はこの割込み間隔が短くなるから

ガスメータがガス量の計測をメインプログラムではなく割込みを使って測定している理由を回答します。
私はいつも割込みのほうが早そうな気がしてしまい「ガス漏れを即時に検出するため」と答えてしまうことが多いのですが、割込みを使う理由としてはMPUの消費電力を抑えることのほうが一般的みたいです。
この装置は電池で動作しており、MPUの状態と動作電流の表もあるので、消費電力に着目する必要がありそうです。

まず、動作電流と動作時間から消費エネルギーを求めます。
通常状態 :2mA×5V×10秒=100mJ
省電力状態:100uA×5V×90秒=45mJ
待機状態 :10uA×5V×3500秒=175mJ
この合計を3600秒で割って平均消費電力を求めて四捨五入した値が回答になります。
(100mJ+45mJ+175mJ)/3600秒=0.08888mW
16ビットレジスタ: 10000
(2)タイマ1の読取りが遅れた場合に、ガス漏れの検出の判断を誤る可能性があるため

カウンタの割込みの優先度を最も高くしている理由を回答します。
この装置にはカウンタ割込み以外にタイマ0割込みというものが存在しているので、仮にタイマ0割込みのほうが優先度が高い場合にどうなるかを考えます。
・タイマ0の割込みによる処理中にカウンタ割込みが発生して待ちが発生する。
↓
・待ちが発生するとタイマ1の値が大きくなる。
↓
・ガス漏れ検出の判断を誤る。
0 件のコメント:
コメントを投稿