IIC通信のマスタ側(RL78/G12)

チョコです。

このとこIICバスのスレーブのプログラムをアップしていましたが、

今回は対応するマスタ側のプログラムです。

動作していたプログラムで未使用の変数を削除して、ビルドしなおしたものです。
手元に、動作環境がないので、確認はしていませんが、正常に動作するはずです。
初期化が完了して、main関数はSWが押されるのを待ちます(この間にスレーブの
準備を完了させます)。

最初は、LEDを点灯させます。フラッシュに準備してあるデータを50msごとに
送信することで表示を移動させています。スレーブ側のSWで2種類のパターンを
見ることができます。SWを押すと、XXXライダーもどきのパターンが見えます。

RAM機能への書き込み/読み出しでは128バイトのデータの読み出しと書き込みを
行っています。最初の読み出しでは、データのチェックは行いませんが、2回目以降は
書き込んだデータと等しいかをチェックしています。

最後のA/D変換結果読み出しでは、SWが押されるまで読み出しを繰り返します。
この間に適当ブレークをかければ、A/D変換結果を確認できます。なお、スレーブで
ブレークかけるととチャネルがずれてしまうので、必ずマスタ側でブレークして
ください。

SWが押されると、LED点灯に戻ります。(SWを押し続けていれば、LED点灯が連続して
見れます。)

Anonymous
  • チョコです。

    先ほど、動作を確認しました。

    次は、RL78/G13に移植するか、簡易IICに変更する予定です。

    移植とは言っても、ターゲット・デバイスを変更して、

    コード生成の設定からやり直し、インターバルタイマの

    割り込み関係のビット名称の変更が2か所と結果表示用の

    LEDのポートをP62,P63に変更するだけです。

    (実はプログラム自体の移植は完了して、評価待ちです。

    簡易IICはライブラリ部を置き換えるだけですが、確認が

    必要です。手元にRL78/G13のTBがないので、簡易IICが

    先になる可能性があります。