2014年12月23日

Microchip MDDによるSDカード読み書き

Microchip MDDによるSDカード読み書きについて
躓いた点についてメモ書き。

FSIO.hとspi.hの両方をヘッダとしてインクルードできない問題。

spi.hをインクルードすると、SDカードのイニシャライズに失敗してしまう。
んで、spi.hをインクルードしなければイニシャライズがうまくいくという。

メインで使用するdsPIC33Fを使用する際にこの問題にぶつかりました。


結論から言えば、spi.h内のdefineのmaster_enableが悪さしてました。
spi.hのmaster_enable0とかに少し書き換えて使用すると問題なく共存できました。

spiが2モジュール使用したい場合や
1モジュールでSDカードの読み込みだけして、
以降はspiでSDカード以外の通信する場合にこの方法が有効かも。

もしかしたら、ヘッダのインクルードの順番にもよるかもしれないが…
それにしても初期ではdsPIC33F用のspi設定がなく、
dsPIC33Eをdefineして、dsPIC33Eとして運用しないといけないとか
なんとまあ不親切さを感じます笑

最近のMPLABX用ではSDカード読み書きライブラリが刷新されているので、
このような問題はないと思います。
使い慣れたヘッダファイルを使いたい方には上記を参考にされればと思います。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | ナレッジ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック