CurrentRTCDate.Byte1.Fields.TenDay   = (Day / 10);
        CurrentRTCDate.Byte1.Fields.Day      = (Day % 10);
        CurrentRTCDate.Byte2.Fields.TenMonth = (Month / 10);
        CurrentRTCDate.Byte1.Fields.TenDay   = (Day / 10);
        CurrentRTCDate.Byte1.Fields.Day      = (Day % 10);
        CurrentRTCDate.Byte2.Fields.TenMonth = (Month / 10);
                TWI_SendByte(CurrentRTCDate.Byte1.IntVal);
                TWI_SendByte(CurrentRTCDate.Byte2.IntVal);
                TWI_SendByte(CurrentRTCDate.Byte3.IntVal);
                TWI_SendByte(CurrentRTCDate.Byte1.IntVal);
                TWI_SendByte(CurrentRTCDate.Byte2.IntVal);
                TWI_SendByte(CurrentRTCDate.Byte3.IntVal);
        CurrentRTCTime.Byte3.Fields.TenHour = (Hour / 10);
        CurrentRTCTime.Byte3.Fields.Hour    = (Hour % 10);
        CurrentRTCTime.Byte3.Fields.TwelveHourMode = false;
        CurrentRTCTime.Byte3.Fields.TenHour = (Hour / 10);
        CurrentRTCTime.Byte3.Fields.Hour    = (Hour % 10);
        CurrentRTCTime.Byte3.Fields.TwelveHourMode = false;
        if (TWI_StartTransmission(DS1307_ADDRESS_WRITE, 10))
        {
                TWI_SendByte(DS1307_TIMEREG_START);
                TWI_SendByte(CurrentRTCTime.Byte1.IntVal);
                TWI_SendByte(CurrentRTCTime.Byte2.IntVal);
                TWI_SendByte(CurrentRTCTime.Byte3.IntVal);
        if (TWI_StartTransmission(DS1307_ADDRESS_WRITE, 10))
        {
                TWI_SendByte(DS1307_TIMEREG_START);
                TWI_SendByte(CurrentRTCTime.Byte1.IntVal);
                TWI_SendByte(CurrentRTCTime.Byte2.IntVal);
                TWI_SendByte(CurrentRTCTime.Byte3.IntVal);
        if (TWI_StartTransmission(DS1307_ADDRESS_WRITE, 10))
        {
                TWI_SendByte(DS1307_DATEREG_START);
        if (TWI_StartTransmission(DS1307_ADDRESS_WRITE, 10))
        {
                TWI_SendByte(DS1307_DATEREG_START);
                TWI_ReceiveByte(&CurrentRTCDate.Byte1.IntVal, false);
                TWI_ReceiveByte(&CurrentRTCDate.Byte2.IntVal, false);
                TWI_ReceiveByte(&CurrentRTCDate.Byte3.IntVal, true);
                TWI_ReceiveByte(&CurrentRTCDate.Byte1.IntVal, false);
                TWI_ReceiveByte(&CurrentRTCDate.Byte2.IntVal, false);
                TWI_ReceiveByte(&CurrentRTCDate.Byte3.IntVal, true);
        if (TWI_StartTransmission(DS1307_ADDRESS_WRITE, 10))
        {
                TWI_SendByte(DS1307_TIMEREG_START);
        if (TWI_StartTransmission(DS1307_ADDRESS_WRITE, 10))
        {
                TWI_SendByte(DS1307_TIMEREG_START);
        DS1307_TimeRegs_t CurrentRTCTime;
 
        if (TWI_StartTransmission(DS1307_ADDRESS_READ, 10))
        DS1307_TimeRegs_t CurrentRTCTime;
 
        if (TWI_StartTransmission(DS1307_ADDRESS_READ, 10))
                TWI_ReceiveByte(&CurrentRTCTime.Byte1.IntVal, false);
                TWI_ReceiveByte(&CurrentRTCTime.Byte2.IntVal, false);
                TWI_ReceiveByte(&CurrentRTCTime.Byte3.IntVal, true);
                TWI_ReceiveByte(&CurrentRTCTime.Byte1.IntVal, false);
                TWI_ReceiveByte(&CurrentRTCTime.Byte2.IntVal, false);
                TWI_ReceiveByte(&CurrentRTCTime.Byte3.IntVal, true);
        *Minute  = (CurrentRTCTime.Byte2.Fields.TenMin  * 10) + CurrentRTCTime.Byte2.Fields.Min;
        *Hour    = (CurrentRTCTime.Byte3.Fields.TenHour * 10) + CurrentRTCTime.Byte3.Fields.Hour;
 }
        *Minute  = (CurrentRTCTime.Byte2.Fields.TenMin  * 10) + CurrentRTCTime.Byte2.Fields.Min;
        *Hour    = (CurrentRTCTime.Byte3.Fields.TenHour * 10) + CurrentRTCTime.Byte3.Fields.Hour;
 }