- CurrentRTCDate.Byte1.Fields.TenDay = (NewTimeDate->Day / 10);
- CurrentRTCDate.Byte1.Fields.Day = (NewTimeDate->Day % 10);
- CurrentRTCDate.Byte2.Fields.TenMonth = (NewTimeDate->Month / 10);
- CurrentRTCDate.Byte2.Fields.Month = (NewTimeDate->Month % 10);
- CurrentRTCDate.Byte3.Fields.TenYear = (NewTimeDate->Year / 10);
- CurrentRTCDate.Byte3.Fields.Year = (NewTimeDate->Year % 10);
-
- if (TWI_StartTransmission(DS1307_ADDRESS_WRITE, 10))
+ NewRegValues.Byte4.Fields.DayOfWeek = 0;
+ NewRegValues.Byte5.Fields.TenDay = (NewTimeDate->Day / 10);
+ NewRegValues.Byte5.Fields.Day = (NewTimeDate->Day % 10);
+ NewRegValues.Byte6.Fields.TenMonth = (NewTimeDate->Month / 10);
+ NewRegValues.Byte6.Fields.Month = (NewTimeDate->Month % 10);
+ NewRegValues.Byte7.Fields.TenYear = (NewTimeDate->Year / 10);
+ NewRegValues.Byte7.Fields.Year = (NewTimeDate->Year % 10);
+
+ // Write the new Time and Date into the DS1307
+ if (TWI_WritePacket(DS1307_ADDRESS, 10, &WriteAddress, sizeof(WriteAddress),
+ (uint8_t*)&NewRegValues, sizeof(DS1307_DateTimeRegs_t)) != TWI_ERROR_NoError)