PIC_coloにDS18B20が繋がった
PIC_coloに1wire接続の温度計DS18B20( これ↓)が繋がりました。
Arduinoのonewireライブラリ(これ↓)を持ってきて、PIC_colo用に書き換えたプログラムはすんなり動いたように見えたのですが、時折読み取った計測値がffffになっています。
実はPIC用への書き換えに不備があったのですが、最初はArduinoのライブラリを疑っていました。<(_ _)>
何が起きているか判らないままあれこれコードを弄ってみましたが、そんたことで改善する筈もありません。Raspi上で動くオシロジ(<==以前作った)で通信波形を調べると・・・
0レベルを保つ時間が他より少し長くなったところで、ROM_SEARCHに失敗していることが判りました。どうやらPICが0を出力している最中に割り込みが入って、読み取りシーケンスが崩れてしまったようです。
タイミングがクリティカルなところに割り込みの禁止と許可をいれてみると・・・
ビンゴ~
ようやく、温度計DS18B20を2回路接続することができました。
後でArduinoのonewireライブラリを見直すと割り込みの禁止と許可らしきコード
が入っていました。
お粗末