#include<msp430g2553.h>
void delay()
{
unsigned int a=5000;
while(a--)
_NOP();
}
int b=0;
void main(void)
{
//unsigned char b=0;
WDTCTL=WDTPW+WDTHOLD;
P1SEL |= BIT6 + BIT7; // Assign I2C pins to USCI_B0
P1SEL2|= BIT6 + BIT7; // Assign I2C pins to USCI_B0
UCB0CTL1|=UCSWRST;
UCB0CTL0 = UCMST+UCMODE_3+UCSYNC; // I2C Master, synchronous mode
UCB0CTL1 |= UCSSEL_2; // Use SMCLK, keep SW reset
UCB0BR0 = 12; // fSCL = SMCLK/12 = ~100kHz
UCB0BR1 = 0;
UCB0I2CSA = 0X48; // Set slave address
UCB0CTL1 &= ~UCSWRST; // Clear SW reset, resume operation
UCB0CTL1|=UCTR;
UCB0CTL1|=UCTXSTT;
delay();
UCB0TXBUF=0x01;
while(!(UCB0TXIFG&IFG2));
delay();
UCB0TXBUF=0X85;
while(!(UCB0TXIFG&IFG2));
delay();
UCB0TXBUF=0X83;
UCB0CTL1|=UCTXSTP;
while(UCB0CTL1&UCTXSTP);
UCB0CTL1|=UCTR;
UCB0CTL1|=UCTXSTT;
delay();
UCB0TXBUF=0X00;
delay();
UCB0CTL1|=UCTXSTP;
IFG2&=~UCB0TXIFG;
while(UCB0CTL1 &UCTXSTP);
UCB0CTL1&=~UCTR;
UCB0CTL1|=UCTXSTT;
delay();
while(!(UCB0RXIFG&IFG2));
b=UCB0RXBUF;
delay();
//UCB0CTL1|=UCTXSTT;
// UCB0CTL1|=UCTXSTP;
// while(UCB0STAT & UCBUSY);
while(!(UCB0RXIFG&IFG2));
b=b<<8+UCB0RXBUF;
delay();
UCB0CTL1|=UCTXSTP;
delay();
while(1);
}