« PICとV2Xe間のSPI通信で悩む | トップページ | コンパスモジュールがとりあえずできた »

2008年8月23日 (土)

V2XeとPICとCCS-PCMで一苦労

お盆休み前からずっとデジタルコンパスモジュールと格闘中ですが、今日はだいぶ進歩がありました。昨日、今年のつくばチャレンジ参加を手伝ってくれているマヒソンさんからV2Xeを使ったサンプルソースコード(PIC18用、HI-TECH C使用)をもらい、今日はV2Xeのモジュール情報とバージョン情報を読み出すところまで成功しています。

わかったことをメモしておくと、そのもらったソースコードでは、起動時にV2Xeの内部バッファをクリアするためにSYNC端子をLow -> High -> Low するとき、待ち時間として 200ms 程度置いていました。私は 20ms 程度もおけば十分だろうと思っていたのですが一桁違った。 待ち時間を 200ms にしてからは、SPIの同期クロックSCLKを1.25MHz (=20MHz/16) に設定して通信できています。

さら気づいたことがあります。V2Xeが返すデータのfloatのフォーマットは IEEE Std 754-1985.に従っているのですが、CCS-PCM の float はフォーマットが違います。コンパイラのリファレンスマニュアルの Common Questions and Answers を見てわかりました。 これが違うのに気づかず、heading情報を読み出しても temperature情報を読み出してもな~んかおかしいので、すごく困っていました。どこまで変なコンパイラ何だ、CCS-PCMは!

HI-TECH Cもインストールしてちょっとだけ試してみたのですが、Vistaにインストールした場合は作業中に100%の確率でMPLABごとプログラムが落ちるのでNG。XPにインストールしたほうでは printf の可変引数あたりでコンパイルエラーがでて解決に時間がかかりそうだったので断念しました。とりあえず今回は時間が無いので我慢してCCS-PCMを使いますが、後で時間を作ってHI-TECH Cを使えるようにしておきたいと思っています。

« PICとV2Xe間のSPI通信で悩む | トップページ | コンパスモジュールがとりあえずできた »

コメント

AVRもよさそうだな~と思って見てはいますが、今は開発が走っている最中なので模索するのは12月になってからにしておきます。

>年間保守契約、なんでバグフィックスにお金をはらわにゃいかんのだ!

そうなんですよ、なので、CCS-Cの使用は止めちゃいました(PCWHだったので、年間メンテ料もバカにならなかったですから)
純正環境につぎ込む資金もないので、あっさりAVRに乗り換えてしまったのでした...

岩崎さん、いつも書き込みありがとうございます。

年間保守契約、なんでバグフィックスにお金をはらわにゃいかんのだ!と思うとお金を出し渋ってしまいます。

> ソースにはコンパイラのバージョンを記録しておいた方が後で焦らずに済みます...

これは、忘れないうちにやっておこうと思います。

CCS-Cはライブラリが充実していて便利は便利なのですが、落とし穴も多いので要注意ですねー.
バグも多いので、年間メインテナンス契約は必須だと思います.
で、コンパイラはバージョンごとに残しておいたほうがいいです.新しいバージョンがいいとは限らないですし、エンバグしてたりすることも多いです.
ソースにはコンパイラのバージョンを記録しておいた方が後で焦らずに済みます...

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/167990/42250281

この記事へのトラックバック一覧です: V2XeとPICとCCS-PCMで一苦労:

« PICとV2Xe間のSPI通信で悩む | トップページ | コンパスモジュールがとりあえずできた »

最近の写真