static void eepromWriteByte(unsigned char addr,unsigned char val){
unsigned char gie;
EEADRL = (unsigned char)(addr & 0xFF);
EEDATL = (unsigned char)(val);
EECON1bits.EEPGD = 0;
EECON1bits.CFGS = 0;
EECON1bits.WREN = 1;
gie = INTCONbits.GIE;
INTCONbits.GIE = 0;
EECON2 = 0x55;
EECON2 = 0xAA;
EECON1bits.WR = 1;
while(EECON1bits.WR);
EECON1bits.WREN = 0;
INTCONbits.GIE = gie;
return;
}
static unsigned char eepromReadByte(unsigned char addr){
EEADRL = addr;
EECON1bits.CFGS = 0;
EECON1bits.EEPGD = 0;
EECON1bits.RD = 1;
asm("nop");
asm("nop");
return (EEDATL);
}
|