リストの皆様へ
H8-3217のI2Cバスを使いたいんですが。
以下のコードでは動作しません。
IIC0.ICCR.BIT.ICE = 1; /* IIC I/F ENABLE */
while(IIC0.ICSR.BIT.BBSY){} /* IIC BUS FREE? */
IIC0.ICCR.BIT.MST = 1; /* SELECT MASTER MODE */
IIC0.ICCR.BIT.TRS = 1; /* SELECT TRANSMITTING MODE */
IIC0.ICSR.BIT.BBSY = 1;
IIC0.ICSR.BIT.SCP = 0; /* IIC BUS USING START */
この時点でSCL,SDAが一瞬ロウになりハイになります。(開始条件の発行だと思います)
IIC0.ICDR = data; /* START TO SEND DATA */
上の1行でデータ送信を開始するはずなのですが。。。
SCL、SDAはハイのままで動きません。
因みにスレーブを全て切り離しても同様の結果です。
バスのアービトレーションはゼロから変化していないようなので確保されているようです。
ICDRに送信データを書き込む前後に何か処理が必要なのでしょうか。
レス頂けましたら。幸甚で御座います。
たけうち