User Guide
Table Of Contents
1LSb Octal DAC Evaluation Board User’s Guide
DS50003218A-page 30 2021
Microchip Technology Inc. and its subsidiaries
void SPI1_WriteWord (unsigned char addr,unsigned int data )
{
CS=0;
SSP1BUF = (addr<<3)&0xF8; //Shift and & write command AD4:AD3:AD2:AD1:AD0:0:0:X
while(!PIR3bits.SSP1IF); //Wait for the interrupt
PIR3bits.SSP1IF = 0; //Clear the interrupt flag
SSP1BUF = ((data>>8)&(0x00FF));// Shift the data to transmit the MS byte
while(!PIR3bits.SSP1IF);
PIR3bits.SSP1IF = 0;
SSP1BUF = ((data)&(0x00FF)); //transmit the LS byte
while(!PIR3bits.SSP1IF);
PIR3bits.SSP1IF = 0;
CS=1;
}
///****************************************************************
// * Function to Read SPI1
// ****************************************************************/
unsigned int SPI1_ReadWord (unsigned char addr )
{
unsigned int dataread;
CS=0;
SSP1BUF = (addr<<3)|0x06; //Shift and & with 0000 011X for write command
while(!PIR3bits.SSP1IF);
PIR3bits.SSP1IF = 0;
SSP1BUF = 0x00;
while(!PIR3bits.SSP1IF);
PIR3bits.SSP1IF = 0;
dataread=SSP1BUF;
dataread=dataread<<8; //Read the MS byte
SSP1BUF = 0x00;
while(!PIR3bits.SSP1IF);
PIR3bits.SSP1IF = 0;
dataread=dataread|SSP1BUF; //Read the LS byte
CS=1;
return dataread;
}
/****************************************************************