int main(void) { struct ds1307_t rtc_tm; static const char infostring[] PROGMEM = "Demo - DS1307 RTC\r\n"; char buffer[BUFFER_SIZE]; uartInit(BAUDRATE); i2cInit(I2C_STD_MODE); sei(); ds1307Init(); ds1307SetTime(SYS_HOUR, SYS_MINS, SYS_SECS); ds1307SetDate(SYS_DAY, SYS_MONTH, SYS_YEAR); uartPutString_P(infostring); while (1) { /* Read Current Time from DS1307 and output to UART */ ds1307GetTime(&rtc_tm); sprintf(buffer, "RTC: [%02d:%02d:%02d] - [%02d.%02d.%02d]\r\n", rtc_tm.hours, rtc_tm.minutes, rtc_tm.seconds, rtc_tm.day, rtc_tm.month, rtc_tm.year); uartPutString(buffer); _delay_ms(1000); } /* never reached */ return (0); }
void rtcSetTime(time_t time) { tmElements_t el; timeBreak(time, &el); ds1307SetSeconds(el.Second); ds1307SetMinutes(el.Minute); ds1307SetHours(el.Hour); ds1307SetDate(el.Day); ds1307SetMonth(el.Month); ds1307SetYear(el.Year - 30); timeSetTime(time); }