PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT PIC,...)

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 13-11-2009, 02:40 AM   #1
rikimaru87
Đệ tử 3 túi
 
rikimaru87's Avatar
 
Tham gia ngày: Apr 2009
Bài gửi: 53
:
Ghi dữ liệu vào eeprom 24c256

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();
}
rikimaru87 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
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
Old 13-11-2009, 10:15 PM   #3
rikimaru87
Đệ tử 3 túi
 
rikimaru87's Avatar
 
Tham gia ngày: Apr 2009
Bài gửi: 53
:
cảm ơn anh Nam. em ghi dữ liệu nhiệt độ của lò sấy gỗ lưu vào eeprom. để sau này khi cần kết nối với máy vi tính vẽ đồ thị lên VB6 . em dùng ds1307 trong mạch.nên mỗi lần ghi giá trị nhiệt độ phải ghi thêm vào thời gian ghi . tốn 1 byte nhiệt độ và 3 byte ghi lại giờ phút giây . em làm vậy đc ko anh Nam
rikimaru87 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-11-2009, 11:40 AM   #4
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
cảm ơn anh Nam. em ghi dữ liệu nhiệt độ của lò sấy gỗ lưu vào eeprom. để sau này khi cần kết nối với máy vi tính vẽ đồ thị lên VB6 . em dùng ds1307 trong mạch.nên mỗi lần ghi giá trị nhiệt độ phải ghi thêm vào thời gian ghi . tốn 1 byte nhiệt độ và 3 byte ghi lại giờ phút giây . em làm vậy đc ko anh Nam
Bạn hoàn toàn có thể làm như vậy. Tuy nhiên, ghi thông tin thời gian đầy đủ cho mỗi giây chẳng hạn thì lãng phí bộ nhớ. Theo tôi, bạn có thể quy định mỗi block 64 byte của EEPROM sẽ chứa 2 byte giờ và phút, cùng với nhiệt độ của các giây 0 đến 59 của phút đó. Hai byte còn lại có thể dùng cho checksum để dò lỗi và sửa lỗi nếu có.

Như vậy, mỗi phút bạn mới ghi 1 block 64-byte vào EEPROM, và một chip 24C256 có thể chứa dữ liệu của 512 phút (> 8 giờ).

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
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-04-2012, 12:35 PM   #5
truong298
Nhập môn đệ tử
 
Tham gia ngày: Mar 2012
Bài gửi: 2
:
e cũng đang làm đề tài tương tự . a có thể up code với mạch lên được không. thanks a\
truong298 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 03:35 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam