前回正しい回路にて通信を行いましたが、通信制御を1bitづつ記述して処理したため
すさまじく長く読みづらいプログラムになってしまいました。
関連
I2CとはI2Cの設定(1)無理矢理動かすI2Cの設定(2)もう少し真面目に動かすI2Cを試してみる今回はまともに使える様に整理して関数化します。
まず、動作を「開始:ST」、「停止:SP」、「リスタート:RS」、「待機:W*」、「受信:RD」、「送信:**」に
分けます。
スタートとストップが3カウント、それ以外が4カウントをベースに制御していましたが、
共通化のためすべて4カウント=1クロックをベースに制御します。
開始、停止、リスタート:1クロック
受信、送信:9クロック
待機:1~16クロック
にて制御を行います。
0,1,2,3の該当するサイクルでSCL,SDA出力を変化させます。