這個MCU的EEPROM需要要先擦再寫,不過實際上Datasheet是寫叫Flash Data Memory
然而DataSheet寫的Addr不知道用燒錄器怎麼反讀值出來
以下是擦寫讀的Code
void Erase_Flash(uint8_t u8addr)
{ EEADR=u8addr; //EEADR=0; EECONbits.FREE=1; EECONbits.WREN=1; EECONbits.WR=1; while(EECONbits.WR==1){;} } void Write_Flash(uint8_t u8addr1,uint8_t u8data) { EEADR=u8addr1; //EEADR=0; EEDATA=u8data; EECONbits.WREN=1; EECONbits.WR=1; while(EECONbits.WR==1){;} }
uint8_t Read_Flash(uint8_t u8addr2)
{
uint8_t u8redata;
EEADR=u8addr2;
EECONbits.RD=1;
NOP();
u8redata=EEDATA;
return u8redata;
}
至於怎麼在燒錄時就寫入初值,到目前為止還沒找到
沒有留言:
張貼留言