2015年9月1日火曜日

AVRをI2Cスレーブとして使う スレーブからバイト列の送信(割り込みで処理)

スレーブからのバイト列送信を割り込みで処理するようにしてみた。

あっさり動いてくれたので特に書くこともないですが、後で参照するために記事としてあげておきます。

ブレッドボード図

ポーリング処理の時と同様です。

Slave側の、Atmel Studioのプロジェクト
https://github.com/ryood/Arduino_master_AVR_sleve/tree/master/Atmel%20Studio/I2C_Slave_Sender_ATMega88V_Byte_Sequence_Interrupt

1バイト送信するごとにISR (TWI_vect)が呼び出されるので、割り込みルーチン内はswitchでステータスコード別に処理しています。

動作手順としてはポーリング処理の場合と同様です。

Master側の、Arduinoのスケッチ
https://github.com/ryood/Arduino_master_AVR_sleve/tree/master/Arduino/master_reader_byte_sequence