RAMアクセス


【RAMアクセスによる消費電流削減】

 データやSFRアクセスのためにPIC内蔵のRAMを読み出し、書き込みを
行うと、そこで当然電力を消費します。
 プログラムそのものがデータをアクセスしなければ動作しませんから
通常は余り気にしないのですが、それでも次のような例の場合には、
RAMのアクセス頻度を減らすことができます。
これにより、例のようにかなりの消費電流を削減することができます。

 下記の例は、タイマ1がタイムアップするのを待つループですが、
赤い枠が通常の記述で、毎回レジスタをアクセスしてT1IFビットがセット
されるのを待っています。

 PICのRUNモードでフルスピードで実行すると19.1mA消費します。
これに対して緑枠内は、同じようにT1IFビットがセットされるのを待つ
ループですが、レジスタアクセスをしたら、NOP命令を5個挿入し、その後
レジスタをアクセスするようにしています。これで、レジスタのアクセス頻度
は1/5以下になります。

 こうすると消費電流は同じ条件でも16.4mAとなり、約15%の削減ができる
ことになります。これはタイマのタイムアップする間で減りますから、全体の
消費電流にもかなりの影響を及ぼします。

《RAMアクセス頻度を削減した例》