Trích:
Nguyên văn bởi rikimaru87
em xài 4 con 24c256 :
ghi dữ liệu vào 1 con (A0=0; A1=0) với hàm dưới đây .
em ghi dữ liệu theo thứ tự tăng dần của địa chỉ 16bit (address)
vậy address bắt đầu là =0x0000 , khi address = 0xFFFF, thì chuyển sang ghi vào con khác .
như vậy có đúng không ạ . và đã hết dung lượng eeprom chưa ạ ?
mong mọi người chỉ bảo ạ !
void write_ext_eeprom(long int address, BYTE data)
{
short int status;
i2c_start();
i2c_write(0xa0);
i2c_write(address>>8);
i2c_write(address);
i2c_write(data);
i2c_stop();
i2c_start();
status=i2c_write(0xa0);
while(status==1)
{
i2c_start();
status=i2c_write(0xa0);
}
i2c_stop();
}
|
24C256 có dung lượng 256 kbit = 32 kB, do đó địa chỉ cuối cùng sẽ là 0x7FFF chứ không phải 0xFFFF.
Bạn nên đọc datasheet của 24C256 để biết các chế độ ghi dữ liệu được hỗ trợ. Không hiểu đoạn code sau khi ghi dữ liệu của bạn để làm gì.
Thân,