2013-12-20 3 views
0

다음 라이브러리 <flash.h>을 사용하여 메모리에서 지우기/쓰기/읽기를 수행하고 있지만 불행히도 저장하려는 데이터가 플래시 메모리에 기록되지 않은 것으로 보입니다. MPLAB XC8 컴파일러와 함께 PIC18F87j11을 사용하고 있습니다. 또한 내가 PIC에서 쓰기를 시도한 후에 프로그램 메모리를 읽을 때 주소 0x1C0CA에 데이터가 없습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?플래시 메모리에 저장할 수 없습니까?

char read[1]; 
    /* set FOSC clock to 8MHZ */ 
OSCCON = 0b01110000; 

/* turn off 4x PLL */ 
OSCTUNE = 0x00; 

TRISDbits.TRISD6 = 0; // set as ouput 
TRISDbits.TRISD7 = 0; // set as ouput 

LATDbits.LATD6 = 0; // LED 1 OFF 
LATDbits.LATD7 = 1; // LED 2 ON 

EraseFlash(0x1C0CA, 0x1C0CA); 
WriteBytesFlash(0x1C0CA, 1, 0x01); 
ReadFlash(0x1C0CA, 1, read[0]); 


if (read[0] == 0x01) 
    LATDbits.LATD6 = 1; // LED 1 ON 

while (1) { 


} 
+1

이있는 플래시 메모리를 프로그래밍을 시작하기 위해 등록하는 것 'ReadFlash (0x1C0CA, 1, read [0]);''ReadFlash (0x1C0CA, 1, read);가 아니어야합니다. –

+0

PIC에서 프로그램 메모리를 읽을 때 메모리에 아무 것도 기록되지 않기 때문에 어느 방법으로도 작동하지 않습니다. – Ammar

+1

하지만 당신이 옳다면'read [0]'대신'read'가되어야합니다 – Ammar

답변

1

모르겠어요 WriteFlashBytes는 않지만 장치의 페이지 크기는 64 바이트이며, 작성 후 EECON2에 ulock 순서를 작성해야하고 EECON1이

관련 문제