void SetTime(void)
{    
  U0CTL |= MST;                                 // Master mode
  I2CTCTL |= I2CTRX + I2CSTT + I2CSTP;          // Transmit, ST, SP (clears MST)
  while ((I2CIFG & ARDYIFG) != ARDYIFG)         // Check if all data has been sent
  {
        while (( I2CIFG & TXRDYIFG) != TXRDYIFG)   // Do nothing if I2C is not ready for new transmit data
    {
    }
        I2CDRB = 0x00;                            // Set register pointer to seconds
        while (( I2CIFG & TXRDYIFG) != TXRDYIFG)   // Do nothing if I2C is not ready for new transmit data
    {
    }
        I2CDRB = 0x00;                            // Set seconds
        while (( I2CIFG & TXRDYIFG) != TXRDYIFG)   // Do nothing if I2C is not ready for new transmit data
    {
    }
        I2CDRB = 0x21;                            // Set minutes
        while (( I2CIFG & TXRDYIFG) != TXRDYIFG)   // Do nothing if I2C is not ready for new transmit data
    {
    }
        I2CDRB = 0x04;                            // Set hours
        while (( I2CIFG & TXRDYIFG) != TXRDYIFG)   // Do nothing if I2C is not ready for new transmit data
    {
    }
        I2CDRB = 0x00;                            // Set day
        while (( I2CIFG & TXRDYIFG) != TXRDYIFG)   // Do nothing if I2C is not ready for new transmit data
    {
    }
        I2CDRB = 0x02;                            // Set date
        while (( I2CIFG & TXRDYIFG) != TXRDYIFG)   // Do nothing if I2C is not ready for new transmit data
    {
    }
        I2CDRB = 0x06;                            // Set month
        while (( I2CIFG & TXRDYIFG) != TXRDYIFG)   // Do nothing if I2C is not ready for new transmit data
    {
    }
        I2CDRB = 0x07;                            // Set year
        I2CIFG |= ARDYIFG;                        // All data has been sent
  }
}
