void Idle(void) //I2C IDLE FUNCTION
{
while((SSPCON2 & 0x1F)|(STAT_RW))
continue;
}
void write_eeprom(char word, char data_address)
{
SEN = 1; //START ENABLED
while(SEN); //WAIT UNTIL START IS OVER
SSPBUF = 0b10100000; //CONTROL BYTE
Idle(); //ENSURE MODULE IS IDLE
if(!ACKSTAT); //ack
else
return;
SSPBUF=data_address; //ENSURE MODULE IS IDLE
Idle();
if(!ACKSTAT);
else
return ;
SSPBUF = word; //DATA BYTE (ZONES: 1,2,3 or 4)
Idle(); //ENSURE MODULE IS IDLE
if(!ACKSTAT); //LOOK FOR ACK
else
return ;
PEN = 1; //STOP ENABLED
while(PEN); //WAIT UNTIL STOP IS OVER
}