Top Page [◀◀]  2   3   4   5   6   7   8   9   ... [▶▶Last Page

IICが動作しない?

初めまして。

70F3741のIIC01を使おうとして、添付ファイルのFig1を実行したところ

Fig2、Fig3のように、アドレスを送信したところまでで停止しているようです。

Ackは帰ってるようにも見えるのですが、割込みは出てないようです。

こんな現象に心当りの方はいらっしゃいますでしょうか。

  • チョコです。

    IIC01の割り込み要求はIICIC1レジスタのビット7で確認することができます。

    このビット(IICIF1ビット)がセットされていて、割り込みを受け付けない場合には、

    CPUが割り込み禁止、割り込み要求がマスクされている(IICIC1レジスタのビット6)

    がセットされている、またはより優先度の高い割り込みを処理中(ISPRレジスタで

    処理中の割り込み優先度を確認できます)です。

    まずは、ここらを確認してみてください。

  • こんにちは

    確認ですが、ACKの検出フラグ(IICSn.ACKDn)は1になってますか?

  • In reply to SA:

    チョコです。

    コード生成を使われているようですが、waitの値は小さすぎるように感じます。

    それと、提示されたe2rom_write_2byte関数は、単に送信を起動しただけで、

    送信が完了したことを意味していません。あくまで、送信の起動だけです。

    これについては、大丈夫でしょうか

  • In reply to チョコ:

    チョコ様、SA様ありがとうございました。

    実は、質問をした直後に、自分が大きな勘違いをしていることに気付きました。

    ICEのブレークポイントを、e2rom・・・関数の終了点にセットし、後はハードで動作するはずだから、割込み検出ポイントに

    ブレークをセットしておけば・・・・・。

    関数を抜けるところで止めているのだから、ハードで割込みが起ることはないということに。

    お騒がせして申訳ありませんでした。

    ソフトをちょっと変更して、きちんと動作しました。

Top Page [◀◀]  2   3   4   5   6   7   8   9   ... [▶▶Last Page