MCP9808
/********************************************************************
*
*
*
*
Function Name:
Return Value:
Parameters:
i2c_start
void
void
Description:
Send I2C Start Command
********************************************************************/
void i2c_start(void) {
PIR1bits.SSPIF = 0; //clear flag
while (SSPSTATbits.BF );
// wait for idle condition
// initiate START condition
// wait for a flag to be set
SSPCON2bits.SEN = 1;
while (!PIR1bits.SSPIF) ;
PIR1bits.SSPIF = 0; // clear flag
}
/********************************************************************
*
*
*
*
*
Function Name:
Return Value:
Parameters:
i2c_repStart
void
void
Description:
Resend I2C Start Command
********************************************************************/
void i2c_repStart(void) {
PIR1bits.SSPIF = 0; // clear flag
while ( SSPSTATbits.BF ) ; // wait for idle condition
SSPCON2bits.RSEN = 1;
// initiate Repeated START condition
while (!PIR1bits.SSPIF) ; // wait for a flag to be set
PIR1bits.SSPIF = 0; // clear flag
}
/********************************************************************
*
*
*
*
*
Function Name:
Return Value:
Parameters:
i2c_stop
void
void
Description:
Send I2C Stop command
********************************************************************/
void i2c_stop(void) {
PIR1bits.SSPIF = 0; // clear flag
while ( SSPSTATbits.BF ) ; // wait for idle condition
SSPCON2bits.PEN = 1;
// Initiate STOP condition
while (!PIR1bits.SSPIF) ; // wait for a flag to be set
PIR1bits.SSPIF = 0; // clear flag
}
DS25095A-page 46
© 2011 Microchip Technology Inc.