こんばんは井田です。 伊藤さん、安井さんありがとうございます。 DDRの設定は下記のようにしましたが結果は変わりませんでした。 unsigned char P6_DDR; P6_DDR &= ~0x01; //入力モード P6DDR = P6_DDR; P6_DDR |= 0x01; //出力モード P6DDR = P6_DDR; リード・ライトの処理の部分は下記のようにしています。 int chip; int adr; unsigned char dat; unsigned char tmp[16]; initEEP(); 割込み無効 chip = 0; // チップ0番 adr = 0x0000; // 開始アドレス0x0000 dat = 0x00; // 開始ライトデータ0x00 for(i=0; i<16; i++){ // アドレスは0x0000〜0x0010 EEP_write(chip,adr,dat); // データは0x00〜0x10 adr++; dat++; } chip = 0; // 書いた場所を読み出す adr = 0x0000; memset(buf, 0 ,64); for(i=0; i<16; i++){ tmp[i] = EEP_read(chip,adr); adr++; シリアルへ送信 = tmp[i]; } 割込み有効 シリアルへ送信したtmp[i]の値が変化有りません。 SDA,SCLのプルアップ抵抗は4.7KΩを付けています。 A0,A1,A2はGNDへ WPはGNDへ接続しています。 あとはどの変を検証していけばいいのでしょうか? >こんにちは、安井です。 > >> P6DDR |= 0x01; //出力モードでLow > >PXDDRは読み出し専用なので、|= は出来ませんので、 >PbddrにPBDDRの値を保存しておき、その値を |= して >から、PBDDRに書き込みます。 > >SDAを設定する > >Pbddr &= ~IIC_SCL; // SCL:H (INPUT) >PBDDR = Pbddr; // PBDDR設定 > >Pbddr |= IIC_SCL; // SCL:OUTPUT >PBDDR = Pbddr; // PBDDR設定 > >こんな感じでしょうか。 > > >