最近、I2C (スレーブ) ライブラリTinyWireSで発生した問題を投稿しました。なんらかの理由で、63 を超えるスレーブ アドレスを使用できませんでした。
この問題を解決するために、新しいスレッドを開始したいと思います。
私のプロジェクトの詳細については、こちらの前回の投稿で確認できます。マスターとスレーブのコードと回路は同じままです。
私が見つけたもの:
マスターが特定のアドレスでスレーブと通信しようとすると、スレーブは ISR 関数を呼び出します (ファイル: usiTwiSlave.c 行: 569)。この関数は、アドレスが正しいかどうかをチェックするため、マスターが別のスレーブに送信する場合でも呼び出されます。
しかし:
マスターにスレーブに接続するように指示すると > 63 ISR が実行されません。残念ながら、ISR 関数がどこで呼び出されているかわかりませんでした。すべてのファイルを検索しましたが、「親」関数が見つかりませんでした。
私はバグを見つけるのに近づいていると確信していますが、C/C++ の経験はあまりありません。
あなたが私を助けてくれることを願っています!