PIC Vietnam

Go Back   PIC Vietnam > Truyền thông > Giao tiếp USB, CAN, I2C, SPI, USART...

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

Giao tiếp USB, CAN, I2C, SPI, USART... Những giao tiếp được tích hợp trên PIC

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
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
 


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à 06:20 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