HI-TECH PICCでEEPROMアクセスを考察
2011-08-22



禺画像]

いつもよく訪問しているブログの中で浜松マイコン工房ニュースがある。あの小型ガイガーカウンターの作者でもある。
その中の記事でPIC HI-TECH CでEEPROMアクセスという記事があり、EEPROMの読み書きに専用のソースコードが書かれていたので、私はいつも使うEEPROM_READ,EEPROM_WRITEの事をコメントしてみた。そうすると、驚くべき事実が分かったのである。

1.EEIF (EEPROM write complete bit)をチェックしていない
 但し、「EEIFビット」(書き込み完了判断)をチェックはしていないが、書き込み前に「WRビット」(書き込み中判断)をチェックしているので、書いた直後にすかさず読みに行くケースでもなければ特に問題にならないであろう。(コメントを頂きました。ありがとう御座います)

2.マクロ定義ということで、コードサイズが大きくなる
用意されていた定義文を疑問に持たずに使っていたのだが、マクロ定義なら、使えば使うほどプログラムが肥大する。そこで、ちょっと実験を行ってみた。



早速検証開始

私が公開しているLCD VUメータのソースコードを使用することにした。これはEEPROM_READ 27箇所、EEPROM_WRITE 3箇所がmainで使われているので、その効果がよくわかる筈だ。

Memory Summary:
    Program space        used   F88h (  3976) of  1000h words   ( 97.1%)
殆どギリギリ状態

これを元に、ソースコードを改造してみる。
EEPROM_READとEEPROM_WRITEをeeprom.cにてまとめた場合
unsigned char E2promRead( unsigned char adr ){
     return(EEPROM_READ( adr ));
}
void E2promWrite( unsigned char adr, unsigned char data ){
     EEPROM_WRITE( adr,data);
}

【結果】
Memory Summary:
    Program space        used   E5Bh (  3675) of  1000h words   ( 89.7%)

何と、301ワードも節約した。

続きを読む

[電子]
[PIC]

コメント(全4件)
コメントをする


記事を書く
powered by ASAHIネット