arduinoにI2C(TWI)で秋月のrtcを繋いでみようという
お話の続きです。
以前実験してみて上手く動かなかった原因が判りました。
スレーブアドレスの指定がおかしかったというのが
原因でした。
I2Cのスレーブアドレスの最下位ビットはR/Wビット
といって、対象のスレーブに対して読み出しリクエスト
なのか書き込みリクエストなのかを指定するビット
なのですが、これが最下位にあるため、言語によっては
あらかじめ1ビット空けておいたり、空けずに詰めて
おいたり…といった方言みたいのがあって、今回
そこにハマッたようです。
ちなみにarduinoの場合は詰めておく派です。
(アセンブラは詰めない派です)
tokoyaさんのスケッチ
http://tokoya.justblog.jp/blog/2008/11/arduinortc-6cdd.html
を眺めていて、アドレス指定の0xa2を1ビットシフト
しているのに気付いて、間違えを発見しました。
いやぁ。思い込みはいけませんね。
で、直したらあっさり動きました…
それにしてもこれまでの苦労は…(TへT)
というわけで、話し変わってネコロジー。ロジスコではなく
ロジアナと名づけたからにはシリアルモニター機能くらいは
つけてしまいたいと思います。
そうすれば、今回みたいなアドレスの不備などは
画面上で見て判るはずなので。
(いつになるかは判りませんが…)
あとで、rtcの接続についてもarduinoのページに
纏めておきたいと思います。
|
|
|