/* // 1) Sets the date and time on the ds1307 // 2) Starts the clock // 3) Sets hour mode to 24 hour clock // Assumes you're passing in valid numbers void setDateDs1307(byte second, // 0-59 byte minute, // 0-59 byte hour) // 1-23 //byte dayOfWeek, // 1-7 //byte dayOfMonth, // 1-28/29/30/31 //byte month) // 1-12 //byte year) // 0-99 { Wire.beginTransmission(DS1307_I2C_ADDRESS); Wire.write(0); Wire.write(decToBcd(second)); // 0 to bit 7 starts the clock Wire.write(decToBcd(minute)); Wire.write(decToBcd(hour)); // If you want 12 hour am/pm you need to set // bit 6 (also need to change readDateDs1307) // Wire.send(decToBcd(dayOfWeek)); //Wire.send(decToBcd(dayOfMonth)); //Wire.send(decToBcd(month)); // Wire.send(decToBcd(year)); Wire.endTransmission(); } ++++++++++++++++++++++++++++++++++++To be removed++++++++++++++++++++++++++++++++++++++ */ // Gets the date and time from the ds1307 void getDateDs1307(byte *second, byte *minute, byte *hour) //byte *dayOfWeek, //byte *dayOfMonth, //byte *month) //byte *year) { // Reset the register pointer Wire.beginTransmission(DS1307_I2C_ADDRESS); Wire.write(0); Wire.endTransmission(); Wire.requestFrom(DS1307_I2C_ADDRESS, 7); // A few of these need masks because certain bits are control bits *second = bcdToDec(Wire.read() & 0x7f); *minute = bcdToDec(Wire.read()); *hour = bcdToDec(Wire.read() & 0x3f); // Need to change this if 12 hour am/pm //*dayOfWeek = bcdToDec(Wire.receive()); //*dayOfMonth = bcdToDec(Wire.receive()); //*month = bcdToDec(Wire.receive()); //*year = bcdToDec(Wire.receive()); if (DST) *hour = *hour + 1; }