User Guide
Table Of Contents
Code
2021
Microchip Technology Inc. and its subsidiaries
DS50003218A-page 35
SSP1DATPPS = 0x14;
SSP1CON1bits.SSPM3 = 1;
SSP1ADD = 0x9F;
PIR3bits.SSP1IF = 0; // clear the interrupt
SSP1CON1bits.SSPEN = 1;
}
/****************************************************************
*Function to write the I2C with Control Byte ,address and data
****************************************************************/
void I2C1Write(unsigned char ControlByte,unsigned char addr,unsigned int data)
{
PIR3bits.SSP1IF = 0;
SSP1CON2bits.SEN = 1; // Start I2c
I2C1_IntPoll();
SSP1BUF = (ControlByte&0xFE); // write bit set
I2C1_IntPoll();
I2C1_ACKCheck();
SSP1BUF = ((addr<<3)&0xF8); // address and write command AD4:AD3:AD2:AD1:AD0:0:0:X
I2C1_IntPoll();
I2C1_ACKCheck();
SSP1BUF = ((data>>8)&(0x00FF));
I2C1_IntPoll();
I2C1_ACKCheck();
SSP1BUF = ((data)&(0x00FF));
I2C1_IntPoll();
I2C1_ACKCheck();
SSP1CON2bits.PEN = 1; //Stop
I2C1_IntPoll();
}
/****************************************************************
*Function to Read from an addressed location
****************************************************************/
unsigned int I2C1Read(unsigned char ControlByte ,unsigned char addr)
{
unsigned int dataread;