Sahara's WebLog

日記のような、備忘録のような、うらみつらみのような、自慢のような…。

PIC24FJ64GA002 + Generic FatFs + RTCC

測定値をSDカードに保存するという使い方なら、測定時刻も記録できたら便利だ。
PIC24FJ64002にはRTCCがついているので実装してみる。

PIC24FJ64GA002 RTCCを試す -とりあえず動かす-」とか「PIC24FJ64GA002 RTCCを試す -コードを眺めて少し改造-」を参照する。
その頃のコードを引っ張り出してきて、必要そうな部分をコピペして、それらしくでっち上げる。
ところが、コンパイルするとエラーになる。
原因はというと、そもそもrtcc.hが見つからない。
gfatfs_rtcc_01
確認してみると、XC16の1.23と1.24のフォルダにはあるのに1.25のフォルダには存在しないのだった。
そもそも、このライブラリがどこ由来なのかも良く分からない。
コンパイラーをインストールすると入っているのか、何か自分で入れたのか。
とりあえず、動くかだけ早く確認したいので、1.24でコンパイルすることにする。
すると問題なくコンパイルできる。

BCD出力の取り扱いがいい加減なので表示が変だが、一応日時を取得して表示できるようだ。
gfatfs_rtcc_02
ところが、今度は、肝心のSDカードを認識しなくなってしまった。
gfatfs_rtcc_03
これは、だいぶ悩んだ。
もともとTimer1を使ってタイムスタンプ関連の処理をしているようだったので、そのへんがバッティングするのかとか、色々調べまわった。
その挙句、実は、単にRTCCの出力(25pin)がDIに使われているので当たってしまうことがわかった。
RTCCへの出力をしないようにしたら、SDカードをちゃんと認識するようになった。
細かなところは手直しが必要だが、一応、時刻と測定値を書き出すことができるようになった。
gfatfs_rtcc_04

もともと、ChaNさんのコードの中に、時刻がらみを扱う部分が見られるので、これをRTCCに置き換える方がすっきりする。
さらに、RTCCのAlarm機能による割り込みで測定間隔を決めるという使い方も出来るのではないかと思う。
以上は、今後の目標だ。

このエントリーをはてなブックマークに追加

Posted under: PIC24FJ64GA002, SD Card


コメントを残す

メールアドレスが公開されることはありません。

Time limit is exhausted. Please reload CAPTCHA.