|
2010/06/10(Thu)
謎は全て解けた・・・犯人は誰?
細々と生きております。
現在、とある依頼により小さなデーターロガーのようなモノを開発しているのですが、将来的にはポータブルなモノにしたいということで、低消費電力ならPICでしょう、ということで、はじめてPIC使用の電気回路のとソフトの開発をしています。
4月からPICライターと電子部品をちょぼちょぼと買って、参考書を何冊か平行読みで解読していき、LEDを光らせたり、スイッチの入力でブザーならしたりなど、入出力についての一通りの動作は判ってきました。
とあるセンサーは、発振回路を組み込んでその周波数を計測するのが(電池による変動する)電圧に依存することなくセンサー値を計測出来るようです。このあたりは周波数カウンターのプログラムを応用できそうです。
となると、あとは数値の表示。インターフェースにする(液晶)LCDユニットを買ってきて、これにPICから文字を表示させるプログラムを組むことに取り組みはじめましたが、ここで大ハマリ。
写真のLCD,配線をつくってプログラムを書いてPICに書き込んで〜と、やっていたのですが、なぜか私の書いたプログラムでは文字表示がどうやっても動作せず、2週間ほど悩んでいました。 兎に角、どうやっても出来ない、動かない〜
それが先ほど、やっと解決したのです。万?lt;br /> 覚書的に書きますが、私の買ったLCDはどうやら起動時にデーターの読み込みまでに時間を要するようで、PICからのコマンドを出す前に、若干のウェイトタイマーをソフトで組んだら、サックリと文字が表示できました。
たった1行だけの追加で2週間もはまっていたのか・・・orz
タイマーを思いついたのは、LCDのハードに関していろいろ調べていたら、基本的に8bit接続のものを今回のように4bit配線で接続した場合、電源投入時から4bitモードになっているかどうかは判らない。なので、最初の8bitから4bitへの設定変更を送る、という記述を見つけて、もしかして4bit変換コマンド(4bit命令×3)を送るタイミングではLCDが起動しきっていなくて、コマンド受信していなかったのかなぁ、と思いついたのです。
今回はこれで解決したので良かったですが、やはりハード+ソフトの組み合わせは思わぬ落とし穴があるので、ハードについて熟知してソフトを組むべきですね。 修士時代にDOSでのTURBO C++で実験装置の制御プログラムを書いていた頃を思い出しました。ハードの制約があって(要は反応が遅い)いろんなトコロにタイマーを組み込んだっけなぁ。
『Hello World』でこんなに時間が掛かったのは初めてですよ(?lt;br /> まぁ、これでLCDへの表示も行けそうなので、次のステップへの目処が経ちました。 ダミーのセンサーをつくって、回路をブレッドボードじゃなくて基盤に実装して、プログラムの製作に取りかかるのは、いつの事やら。
by
Kanno |
2010/06/10 02:48:20 |
ばしゃうま業務日記 |
comment(0) |
trackback(0)
|
|