這個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;
}
至於怎麼在燒錄時就寫入初值,到目前為止還沒找到
沒有留言:
張貼留言