View Single Post
Old 13-11-2009, 08:36 AM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi rikimaru87 View Post
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,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263

thay đổi nội dung bởi: namqn, 13-11-2009 lúc 08:43 AM.
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn