2013年9月25日水曜日

赤外線送信モジュールのソース

回路図は公開したものの、ソースはちょっとパンツの中を覗かれているような感じで公開するのは恥ずかしいですけど・・・

大腿骨骨折で手術前に看護婦さんにパンツの中も覗かれちゃったことだし、40過ぎて恥ずかしがってることもないかなとか思って、下にリンク貼ってみます。

Dropboxというクラウドなスペースのこのファイルだけ外からアクセスできるようにしてみているのですが、出来なかったらコメントで知らせてくれると有りがたいです。

余計なものまで見える場合も教えて下さい(w

見えないとおもいますけど。

ソース


ちなみに、コンパイルはMPLAB XにXC8コンパイラで行なっています。

MPLAB XはLinux版ですが、windows版でも問題ないと思います。
やってみてないですけど。

ソースではコメントアウトしてますが、自分が使っているものは、OSCCALに自分のチップの周波数補正値を設定してます。

これは、私の環境だとプログラムエリアの一番最後に書かれていなくちゃならない補正値が書き込みのたびに消えてしまって、それをあとから書きこむのが面倒なので、プログラム内でこれを設定してしまっています。

これにあわせて、MPLAB上でプロジェクトのプロバティを開き、XC8のリンカの設定で「Calibrate oscillator」のチェックを外しています。

通常は、プログラムROM内の最終番地に書かれている値を自動的に使うようになっているのでコメントアウトしておいても大丈夫なはずです。

また、プログラムは9XR用に作っています。

その他のプロポの場合、PPM信号の順番が違っていたりするはずです。

修正する場合は、メインループの最初で送信するデータの計算をしていますが、そこで使っているp[n]という変数のnの部分を自分のプロポに合わせることで修正できます。

また、フタバはPPM信号が9XRと比べると上下反転しています。

多分、このままでも動作すると思いますが、もしかするとパルスの検出を立ち下がりエッジから立ち上がりのエッジに変更する必要があるかもしれません(理論上はないと思ってます)。

変更する場合には、main関数の最初の方でもろもろ設定しているなかの「INTEDG = 0;」を「INTEDG = 1;」に変更して下さい。

と、こんなんかんじで。

(ソース貼りつけてみたけど、やってみる人なんていないかな)

ちなみに、回路図はここ

0 件のコメント:

コメントを投稿