![]() |
|
![]() |
#1 |
Đệ tử 6 túi
Tham gia ngày: Jul 2007
Bài gửi: 154
: |
bài viết của em là khi có data từ pc gởi xuống thì lưu vào mang chu[]. và khi gặp giá trị 255 tức là giá trị kết thúc chuổi đã gởi và gọi chương trình viết vào eeprom. việc viết vào địa chỉ eeprom tuỳ thuộc vào giá trị chu[0] trong chuổi để chọn các địa chỉ khác nhau (add1 .. add4). do đó khi đọc các chuổi trong eeprom ra thì chọn đại chỉ nào thì đọc được địa chỉ đó và đọc đúng chuổi gởi vào.
cách giải thích của anh em cũng chưa hiểu rỏ lắm và chưa biết cách khác phục lại phần mềm như thế nào mong anh chỉ rỏ thêm |
![]() |
![]() |
![]() |
#2 |
Trưởng lão PIC bang
|
Cách tốt nhất là bạn tham khảo ví dụ ghi EEPROM của CCS C và chỉnh sửa lại cho phù hợp với yêu cầu của bạn.
Lấy ví dụ đơn giản, bạn có chuỗi 1 sẽ được ghi vào EEPROM. Ở đầu hàm viet_eeprom(), bạn đã cấm ngắt toàn cục. Khi thực hiện ghi chuỗi 1, bạn gọi hàm write_eeprom(b1, s) để ghi lại giá trị của s. Về nguyên tắc, hàm write_eeprom() của CCS C dùng khả năng ghi vào EEPROM của phần cứng bên trong PIC, do đó sẽ kích hoạt cờ EEIF khi đã ghi xong byte s đó vào b1. Theo yêu cầu của phần cứng, có lẽ hàm write_eeprom() của CCS C sẽ xóa cờ EEIF trong trường hợp polling và để nguyên nó nếu bạn có dùng #INT_EEPROM (để trình phục vụ ngắt #INT_EEPROM có thể xử lý như thiết kế). Vì ngắt toàn cục đã bị cấm, hàm viet_eeprom() của bạn tiếp tục chạy đến vòng lặp để ghi chuỗi vào vùng nhớ add1. Như đã nói ở trên, cứ sau mỗi lần ghi được 1 byte vào EEPROM, cờ EEIF sẽ được bật, và có lẽ sẽ không được xóa vì bạn đã khai báo có dùng #INT_EEPROM. Tôi không rõ hàm write_eeprom() sẽ làm gì trong trường hợp này (đây cũng là một trong những lý do khiến tôi không thích những hàm built-in của CCS C, vì hành vi của chúng không được giải thích rõ ràng). Hành vi của hàm viet_eeprom() của bạn phụ thuộc vào hành vi không được biết rõ của hàm write_eeprom(). Và cách viết code của bạn là không thân thiện với cấu trúc ngắt của PIC. 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 |
![]() |
![]() |
![]() |
#3 | |
Đệ tử 6 túi
Tham gia ngày: Mar 2007
Bài gửi: 150
: |
Trích:
Có gì thì trao đổi thêm ha.. !!
__________________
_________________________________________________ Le Trung Duc Industry Research & Application Center NTT Institute of Hi_technolog ltduc@ntt.edu.vn leduc_cktd@yahoo.com.vn http://www.nttc.edu.vn CNC DIY : http://quangcaosanpham.com/shop/driverservo 0909300332 thay đổi nội dung bởi: LeDuc, 24-03-2008 lúc 12:43 PM. |
|
![]() |
![]() |
![]() |
|
|