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カード読み書きライブラリが刷新されているので、
このような問題はないと思います。
使い慣れたヘッダファイルを使いたい方には上記を参考にされればと思います。
2014年12月23日
この記事へのコメント
コメントを書く
この記事へのトラックバック