気圧、温度、湿度の3つの表示を分離表示させるには?その3
内蔵EEPROMで簡易記録!


さて、ハンディーの気圧、温度、湿度の3つの表示を分離表示できる装置(名前をつけなくてはいけない・・:仮名称 トリピー?)が何とか型にはなったものの、地元のビルの45階展望台登頂(エレベーターで!)の旅に持っていくには、まだ機能が足り無いのです。

なぜ高いビルに登頂しなければならないか?

それは、気圧の変化をはっきり体験できる唯一の近場だからです。

全測定毎にRS232Cへのデータ出力を行っているので、ノートパソコンを持っていってケーブルで繋いで、ハイパーテキストで保存状態にしておけば、完全にデーターロガーになります。

でも、私はものぐさなので、そのノートパソコンですら持っていきたくは無いのです。

じゃあどうしたら良いのでしょうか?

データメモリーに記憶するのも良いのですが、不用意に電源を切ってしまえば、データーは消えてなくなってしまいます。16系、18系のPICには、EEPROMが内蔵されています。これを使ってみようと言うのです。

以前、PICで温度調整器を作った時に、温度管理の上限温度値と下限温度値をEEPROMに記憶させておいて、電源を切っても以前の設定を覚えさせておく事ができる様にアセンブラーで組みました。
これに似た様な事を、PICのC言語でもやってみようと言うわけです。

押しボタンを押したら、EEPROM領域がいっぱいになるまで気圧のプロットデーター値を記憶させ、記憶領域がいっぱいになり次第、EEPROMへの記録だけを止めます。

EEPROMにHI-Tech C言語から読み書きする為の専用関数(eeprom_write、eeprom_read)が用意されていますが、扱えるデーター長が8ビット(1バイト)です。プロット時の気圧データーは、符号無し16ビット(2バイト)なので、共有体を上手く使って使って16ビットを8ビットの2組に分けて記録します。

共有体とは、1つのデーター宣言領域を、多重の別の構造のデーター領域として扱えるもので、1バイトを8ビットに分割して扱ったり、逆に8ビットを一括して、1バイトで扱ったりする場合に重宝されます。

16F886でEEPROMは256バイトなので、256/2=128。128/48=2.7。プロット画面2.7枚分を記録する事が可能です。

記録されたデーターを再生したい時は、この逆変換をしながら再生すれば、RS232Cへ出力する事も、画面にプロットする事も出来るはずです。

なお、今回は気温や湿度のデーターは記憶せず、気圧データーだけの記憶を行う事にします。

ハードウエアの変更や追加はしません。
さて、ソフトウエアは上手く完成するのでしょうか?(Sep. the 2nd. 2010)



EEPROM書き込み記憶実験が無事終了しました!

電源を切って、
秋月のPICkit2もどき(USB版PICkit2互換、ソケット付き)を使って、
EEPROMのデータを読み込んで検証です。
まだ、EEPROMからの読み出し表示ルーチンを書いていないので・・

ここでも、
パレットソフトさんの資料
(ショートカット ー> PIC® microcontroller ー> 談話:準備:C言語の使い勝手 )
の「バイトオーダー」が役に立ちます。

複数バイトの数値データーが、
どのような順番にデーターメモリーに記憶されているかです。

データメモリーを1バイトづつ順番に変数に読み出して、
検証しましたが、
データメモリーには、
アドレスの小さい番地から
数値のLSB(Lower Side Byte)から順番に格納されていました。

パレットソフトさんが言う様に、
LH型(リトルエンディアン)ですね。

ビッグエンディアンとリトルエンディアンという単語は、ジョナサン・スウィフトの風刺小説『ガリヴァー旅行記』の中のエピソードに由来し、ガリバー旅行記の第1部「小人国」では、卵を丸い方(大きい方)の端から割る人々 (Big Endians) と、尖った方(小さい方)の端から割る人々 (Little Endians) との対立が描かれているところから由来しています。(Wikiペディアより)

EEPROMに書き込む時も、
PICをまねて、
今回はLH型で書き込んでみました。

16F886でも、18LF2550でも問題なく書き込めました。
さー、今度は読み込み表示部分を考えなくては行けません。
例によって、いつになる事やら!(Sep. the 4th 2010)

やっと、記録データの再生もRS232C通信を含めて問題なくできる様になりました。あくまでEEPROMを使ってデータを記録する事、その記録したデータを、後で再生しながらRS232Cへ出力する事が目的なので、操作性を無視しています。(プログラムを整理中!)(Sep. the 11th 2010)


注意事項
General disclaimer
トッ プページへ

なお、当ホームページで公開しているデーター(写真、音声)等を個人の枠を超えて複製・転用する事はご遠慮下さいませ。
ご意見/苦情/ご感想はこちらまで