こんばんは井田です。
伊藤さん、安井さんありがとうございます。
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設定
>
>こんな感じでしょうか。
>
>
>