View Single Post
Old 13-01-2009, 12:43 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 datk45d View Post
Chào các bác.

Tôi đang có một ứng dụng dùng pic16f886, trong đó đọc lần lượt các giá trị trong flash và đưa ra spi. Tôi dùng khai báo "const unsigned char data[]={...}" để đặt sẵn các giá trị trong flash. Chương trình OK, nhưng chỉ với kích thước giới hạn nhỏ hơn 0x800. Còn với mảng dữ liệu lớn hơn thì không được, HTPIC pro báo:"can't find 0x801 words for psect "strings" in segment "CODE" ". Có vẻ như HTPIC không thể đặt dữ liệu trong 2 block flash thì phải. Bác nào biết cách khắc phục xin giúp đỡ. Thank trước.
Mời bạn xem hình 2-3 trong datasheet của PIC16F886. Bộ nhớ chương trình của PIC16F886 được tổ chức thành 4 trang (trang 0 đến trang 3, mỗi trang có độ dài 0x800 = 2048 word). Để truy cập dữ liệu nằm ở nhiều trang thì cần theo dõi và cập nhật thanh ghi PCLATH cho tương ứng với trang cần dùng.

Bạn thử tách dữ liệu của bạn thành nhiều khối có độ dài 2048 xem. Tôi không dùng HTPIC nên không rõ cách làm cụ thể như thế nào trong HTPIC, bạn nên vào diễn đàn của HTPIC (http://www.htsoft.com/support/forums.php) để hỏi.

Về thuật toán truy cập bảng kích thước lớn, bạn có thể tham khảo piclist (www.piclist.com), nhưng code mẫu của họ thường dùng hợp ngữ. Chẳng hạn trang này: http://www.piclist.com/techref/microchip/bigtable.htm.

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-01-2009 lúc 12:50 AM.
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn