Microchip AVR8 用のライブラリを自作する。(TWI)

マスターモード専用のTWIライブラリ。Arduino互換クラスのオマケ付き。(笑)

【仕様】
・マルチマスター
・リピーテッドスタート
・7/10ビットスレーブアドレス
・クロックストレッチ
・任意の通信速度(50KHz~1MHz)

※バスの信号線の状態によっては最悪永久ループしてしまうことがある。それを防ぐには、
[avr8_config.h] #define CONFIG_RTC_USE 1
に設定したうえで、先にRtc::begin()とRtc::run()を実行しRTCを起動しておくこと。タイムアウトの規定値は200ms。
begin()でタイムアウト指定しても良いが最長でも200usなので短すぎるかな。

【サンプルコード (Microchip Studio)】

【サンプルコード (Arduino)】
データバッファサイズは、
[avr8_config.h] #define CONFIG_TWI_IOBUF_SIZE 16
に設定する。

【ライブラリ】

【関連投稿】
Microchip AVR8 用のライブラリを自作する。(GPIO)
Microchip AVR8 用のライブラリを自作する。(FUSE)
Microchip AVR8 用のライブラリを自作する。(CLOCK)
Microchip AVR8 用のライブラリを自作する。(RESET)
Microchip AVR8 用のライブラリを自作する。(PORTMUX)
Microchip AVR8 用のライブラリを自作する。(USART)
Microchip AVR8 用のライブラリを自作する。(RTC)
Microchip AVR8 用のライブラリを自作する。(TCA)
Microchip AVR8 用のライブラリを自作する。(TCB)
Microchip AVR8 用のライブラリを自作する。(VREF)
Microchip AVR8 用のライブラリを自作する。(DAC)
Microchip AVR8 用のライブラリを自作する。(AC)
Microchip AVR8 用のライブラリを自作する。(ADC)
Microchip AVR8 用のライブラリを自作する。(ZCD)
Microchip AVR8 用のライブラリを自作する。(SPI)
Microchip AVR8 用のライブラリを自作する。(TWI)
Microchip AVR8 用のライブラリを自作する。(YIELD)
Microchip AVR8 用のライブラリを自作する。(CONFIG)