User Guide

1LSb Octal DAC Evaluation Board User’s Guide
DS50003218A-page 36 2021
Microchip Technology Inc. and its subsidiaries
PIR3bits.SSP1IF = 0;
SSP1CON2bits.SEN = 1; // Start
I2C1_IntPoll();
SSP1BUF = (ControlByte&0xFE);//;write
I2C1_IntPoll();
I2C1_ACKCheck();
//address where to read from
SSP1BUF = (((addr<<3)&0xF8)|0x06); //address,write command AD4:AD3:AD2:AD1:AD0:0:0:X
I2C1_IntPoll();
I2C1_ACKCheck();
SSP1CON2bits.RSEN = 1; //Repeated Start
I2C1_IntPoll();
SSP1BUF =(ControlByte|0x01); //; or with read bit 0
I2C1_IntPoll();
I2C1_ACKCheck();
SSP1CON2bits.RCEN=1; //enable receive
I2C1_IntPoll();
dataread=SSP1BUF;
I2C1_ACK(); //Send ACK for received data
SSP1CON2bits.RCEN=1; //enable receive
I2C1_IntPoll();
dataread=((dataread<<8)|SSP1BUF);;
I2C1_NACK(); //Send NACK for received data
SSP1CON2bits.PEN = 1; //Stop
I2C1_IntPoll();
return dataread;
}
/****************************************************************
*Function to read from the last addressed location
****************************************************************/
unsigned int I2C1ReadLastAddr(unsigned char ControlByte )
{
unsigned int dataread;
PIR3bits.SSP1IF = 0;