![]() |
|
Tài trợ cho PIC Vietnam |
||||||||
| Bootloaders - Programmers - Debuggers - Emulators Những công cụ cần thiết để lập trình cho PIC/dsPIC |
|
|
Ðiều Chỉnh | Xếp Bài |
|
|
#1 |
|
Nhập môn đệ tử
Tham gia ngày: Jan 2008
Bài gửi: 10
: |
Hỏi về table write trong PIC18FXXJXX
Mình đang viết ctrinh bootloader, trong đó có phần ghi data xuống lên flash memory (ROM) của con PIC18F67J10 vẫn còn bị lỗi. Sau khi thử chạy chức năng ghi này và đọc lại vùng memory vừa được ghi thì thấy ko có gì hết. Code của mình như sau:
Code:
int i;
TBLPTR = addr; // địa chỉ của vùng nhớ mà data đc ghi, ở đây mình dùng 0x2000
// ghi 64 bytes data vào holding register trước khi bắt đầu write
for (i=0;i<64;i++) {
TABLAT = 0x43; // kí tự C sẽ đc ghi vào từng byte bộ nhớ
_asm
TBLWTPOSTINC
_endasm
}
EECON1bits.WREN = 1; // bật bít write, cho phép ghi
INTCONbits.GIE = 0; // tạm thời disable interrupt
EECON2 = 0x55; // unlock register
EECON2 = 0xAA;
EECON1bits.WR = 1; // bắt đầu ghi
while (EECON1bits.WR); // trong khi đang ghi thì chờ
INTCONbits.GIE = 1; // enable interupt
EECON1 = 0x00; // disable WREN , ko cho phép ghi nữa
thay đổi nội dung bởi: namqn, 31-01-2008 lúc 07:43 PM. Lý do: bổ sung thông tin |
|
|
|
|
|