View Single Post
Old 08-12-2009, 09:37 AM   #11
phamminhtuan
Super Moderator
 
phamminhtuan's Avatar
 
Tham gia ngày: Feb 2006
Bài gửi: 150
:
Có một cách nữa có lẽ là hay hơn:

Bạn tiến hành các bước sau:
+ Tạo một vùng nhớ index, trỏ đến block dữ liệu của bạn, có thể 1 byte hay 2 byte tùy thuộc vào dung lượng EEPROM, đặt nó ở địa chỉ đầu tiên, có thể là 0x00
+ Định dạng cho mỗi Block dữ liệu của bạn bao gồm dữ liệu và 2 byte chứa số lần ghi eeprom (gọi là MaxWriteTime).
+ Khi đọc dữ liệu, bạn đọc index trước để xác định vị trí của block dữ liệu trong eeprom
+ Khi ghi dữ liệu, bạn đọc index để xác định vị trí sẽ ghi block dữ liệu, đọc MaxWriteTime, nếu MaxWriteTime lớn hơn SỐ LẦN TỐI ĐA GHI EEPROM(1.000.000) thì tăng index lên, và ghi vào vùng nhớ tiếp theo xác định bởi index. Nếu MaxWriteTime nhỏ hơn SỐ LẦN TỐI ĐA GHI EEPROM thì có thể ghi đè lên, và không thay đổi index.


Tùy thuộc vào dung lượng mà cách này có thể tăng tối đa số lần ghi eeprom lên 1.000.000 lần nữa.

Cách đầu tiên ở bài POST #1 có thể mất một khoảng thời gian nhỏ khi khởi động, nhưng số lần ghi tối đa có thể cao hơn rất nhiều nếu dung lượng eeprom càng lớn
phamminhtuan vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn