295
IFG2 &= ~UCB0TXIFG;
if(UCB0STAT & UCNACKIFG)
{
return UCB0STAT;
}
UCB0TXBUF = address;
while (!(IFG2 & UCB0TXIFG));
if(UCB0STAT & UCNACKIFG)
{
return UCB0STAT;
}
UCB0CTL1 &= ~UCTR;
UCB0CTL1 |= UCTXSTT;
IFG2 &= ~UCB0TXIFG;
while (UCB0CTL1 & UCTXSTT);
for(i = 0; i < (length - 1); i++)
{
while (!(IFG2&UCB0RXIFG));
IFG2 &= ~UCB0TXIFG;
value[i] = UCB0RXBUF;
}
while (!(IFG2 & UCB0RXIFG));
IFG2 &= ~UCB0TXIFG;
UCB0CTL1 |= UCTXSTP;
value[length - 1] = UCB0RXBUF;
IFG2 &= ~UCB0TXIFG;
return 0;
}
unsigned char I2C_USCI_write_byte(unsigned char address, unsigned char value)
{
while(UCB0CTL1 & UCTXSTP);
UCB0CTL1 |= (UCTR | UCTXSTT);
while(!(IFG2 & UCB0TXIFG));
if(UCB0STAT & UCNACKIFG)
{
return UCB0STAT;
}
UCB0TXBUF = address;
while(!(IFG2 & UCB0TXIFG));
if(UCB0STAT & UCNACKIFG)