nobcha23の日記

PICマイコンやArduinoを使う電子回路遊びを紹介します

RTC-8586時計機能の制御

今回取り掛かったi2c接続RTC実験ではいくつかのターゲットがありました。
まず一つはMSSPを使いこなしi2c接続を行う関数を作る。これは今後のためにread/writeで実績ある関数を用意しようということです。read/writeできたので、後はEEPROM使ってブロックです。
もう一つはRTCを使い時計を作ってみたかったのです。こちらはRTCより時計データを読み出し、キースイッチ使って日時設定するMMIに時間掛かりました。設定スイッチで内部データを読み出し設定する年、月、日、時間のところにカーソルを飛ばします。UPスイッチとDOWNスイッチがあり、それでインクリメント、デクリメントして数字書き換えます。順次カーソルを動かし元の位置に戻ると内容をスクラッチモリーからRTCレジスタに書き込みます。  
ソフトコーディングで頭を悩ましたのは、PIC側でのデータ管理→RTCを同じ形式でコピー持つ、表示→RTC形式を表示時にフォーマット(たとえば、曜日変換など)、設定時のアップダウンでの最小最大値管理などです。詳しくはソースコードを見てみてください。
これを実用試作レベルの枕もと時計にするには、まだまだ適当やっつけ仕事で未完成項目がたくさんあります。 
でもまあ、とりあえずブレッドボード実験の第一段はこれにて達成です。

todo項目は次です。
1.delay関数でRTCポーリングして表示をリフレッシュしているのは時計精度も狂わせるため、RTCの1秒単位割込みを使って表示をキックするようにしたい。ポートのやりくり必要。
2.時間アラーム追加したい。ブザーポートやりくり必要。ブザー音発生も初めての取り組み。

エレキジャック神崎さんアルディーノ接続でちょうどRTC扱ってますね。
http://www.eleki-jack.com/FC/2011/09/rtc8564nb3lcd.html#



http://chitose6thplant.web.fc2.com/