初めまして。
70F3741のIIC01を使おうとして、添付ファイルのFig1を実行したところ
Fig2、Fig3のように、アドレスを送信したところまでで停止しているようです。
Ackは帰ってるようにも見えるのですが、割込みは出てないようです。
こんな現象に心当りの方はいらっしゃいますでしょうか。
チョコです。
IIC01の割り込み要求はIICIC1レジスタのビット7で確認することができます。
このビット(IICIF1ビット)がセットされていて、割り込みを受け付けない場合には、
CPUが割り込み禁止、割り込み要求がマスクされている(IICIC1レジスタのビット6)
がセットされている、またはより優先度の高い割り込みを処理中(ISPRレジスタで
処理中の割り込み優先度を確認できます)です。
まずは、ここらを確認してみてください。
こんにちは
確認ですが、ACKの検出フラグ(IICSn.ACKDn)は1になってますか?
コード生成を使われているようですが、waitの値は小さすぎるように感じます。
それと、提示されたe2rom_write_2byte関数は、単に送信を起動しただけで、
送信が完了したことを意味していません。あくまで、送信の起動だけです。
これについては、大丈夫でしょうか
チョコ様、SA様ありがとうございました。
実は、質問をした直後に、自分が大きな勘違いをしていることに気付きました。
ICEのブレークポイントを、e2rom・・・関数の終了点にセットし、後はハードで動作するはずだから、割込み検出ポイントに
ブレークをセットしておけば・・・・・。
関数を抜けるところで止めているのだから、ハードで割込みが起ることはないということに。
お騒がせして申訳ありませんでした。
ソフトをちょっと変更して、きちんと動作しました。