Darkside(https対応しました)

2021年11月15日(月) 21:15

問題先送り

 問題はどうやら、Git でソースを戻した時にプロジェクトが完全に元に戻る訳じゃないあたりにありそうだ。

 ハードウェアI2Cが動作していないように見えるため、Git でソフトウェアI2C使用状態に戻して動作確認した。しかし、その直後はコンパイルエラーが出た。プロジェクトに含まれるファイルや含まれないファイルの設定が、なぜか管理対象になっていない。余計なものをコンパイルしようとしてエラーになり、あるはずのものがないからエラーになり・・・それでも問題はそう多くないので手動で補い、ソフトウェアI2Cで無事に動作確認できた。
 その後またMCCをいじってハードウェアI2Cにしたが、そこで1箇所だけ変更を忘れていた。

 main.c でインクルードするヘッダーファイルも soft_i2c.h から hard_i2c.h に変更せねばならなかったのだが、変更していなかった。soft_i2c.h はプロジェクトから除外していたが、ファイルまでは削除していなかった。これが、コンパイル時にエラーを発生させず一見正常に終了。
 でもって、恐らく古い obj をリンクし続けていたのだろう。それで、LCD表示が旧のまま、と。

 hard_i2c.h をインクルードするように書き換え、ゴミファイルを削除し、ようやく異常は解消された。だが、それと同時にLCDにも何も表示されなくなった。実は、やはりハードウェアI2Cは動作していなかった!
 おいおい、どうするんだよ・・・ここで、傾斜センサーのアクセスは受信機 dsPIC ではなく走行制御 dsPIC の担当だったことを思い出す。つまり、受信機 dsPIC 自体はハードウェアI2Cにしなくて良い。とは言え、ハードウェアI2Cが走行制御 dsPIC で必要になることは変わらない。

 いずれにしろ、受信機 dsPIC に関する限り、ADC値が取得できない問題の方がでかい。
 これも、Git が不完全に元に戻してくれた影響じゃないか?
 ADC周りの設定が、狂っているのでは?
 確認すると、AD1CON2 の CSCNA が enabled でなければならないのに disabled になっていた。

修正したが、今度は書き込みできない。

 PicKit 4 を挿し直したり、USB接続し直したり、あれこれ試すがエラーの内容が変化するだけで異様に不安定である。

 普段ほとんど見掛けないようなエラーが頻発している。

 何度も試しているうちに今度はエラーで「速度を落としてみろ」と言われる。プログラムの書き込み速度を Low にすると、成功した。

 無事に、ADC値も取得できるようになった。
 ハードウェアI2Cが動かない問題は棚上げし、続く走行制御 dsPIC で探ることにする。

written by higashino [Sタンク 1/16] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

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

Comments

TrackBacks

Darkside(https対応しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4