From 85969853d5533b8b70192590274c5d63f31735ec Mon Sep 17 00:00:00 2001 From: Linus Nielsen Feltzing Date: Wed, 20 Nov 2002 00:00:25 +0000 Subject: New time functions git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2861 a1c6a512-1295-4272-9138-f99709370657 --- firmware/common/timefuncs.c | 53 +++++++++++++++++++++++++++++++++++++++++++++ firmware/common/timefuncs.h | 44 +++++++++++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+) create mode 100644 firmware/common/timefuncs.c create mode 100644 firmware/common/timefuncs.h (limited to 'firmware') diff --git a/firmware/common/timefuncs.c b/firmware/common/timefuncs.c new file mode 100644 index 0000000000..0371762465 --- /dev/null +++ b/firmware/common/timefuncs.c @@ -0,0 +1,53 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2002 by Linus Nielsen Feltzing + * + * All files in this archive are subject to the GNU General Public License. + * See the file COPYING in the source tree root for full license agreement. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#include "config.h" + +#include "rtc.h" +#include "time.h" +#include "debug.h" + +static struct tm tm; + +struct tm *get_time(void) +{ + char rtcbuf[8]; + int i; + + /* We don't need the first byte, but we want the indexes in the + buffer to match the data sheet */ + rtc_read_multiple(1, &rtcbuf[1], 7); + + for(i = 0;i < 7;i++) + { + DEBUGF("%02x ", rtcbuf[i]); + } + DEBUGF("\n"); + + tm.tm_sec = ((rtcbuf[1] & 0x70) >> 4) * 10 + (rtcbuf[1] & 0x0f); + tm.tm_min = ((rtcbuf[2] & 0x70) >> 4) * 10 + (rtcbuf[2] & 0x0f); + tm.tm_hour = ((rtcbuf[3] & 0x30) >> 4) * 10 + (rtcbuf[3] & 0x0f); + tm.tm_mday = ((rtcbuf[5] & 0x30) >> 4) * 10 + (rtcbuf[5] & 0x0f); + tm.tm_mon = ((rtcbuf[6] & 0x10) >> 4) * 10 + (rtcbuf[6] & 0x0f); + tm.tm_year = ((rtcbuf[7] & 0xf0) >> 4) * 10 + (rtcbuf[7] & 0x0f) + 2000; + tm.tm_wday = rtcbuf[4] & 0x07; + tm.tm_yday = 0; /* Not implemented for now */ + tm.tm_isdst = -1; /* Not implemented for now */ + return &tm; +} diff --git a/firmware/common/timefuncs.h b/firmware/common/timefuncs.h new file mode 100644 index 0000000000..1110ad9a44 --- /dev/null +++ b/firmware/common/timefuncs.h @@ -0,0 +1,44 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2002 by Linus Nielsen Feltzing + * + * All files in this archive are subject to the GNU General Public License. + * See the file COPYING in the source tree root for full license agreement. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#ifndef _TIMEFUNCS_H_ +#define _TIMEFUNCS_H_ + +#include "config.h" + +#ifndef SIMULATOR + +struct tm +{ + int tm_sec; /* seconds */ + int tm_min; /* minutes */ + int tm_hour; /* hours */ + int tm_mday; /* day of the month */ + int tm_mon; /* month */ + int tm_year; /* year */ + int tm_wday; /* day of the week */ + int tm_yday; /* day in the year */ + int tm_isdst; /* daylight saving time */ +}; + +#endif + +struct tm *get_time(void); + +#endif /* _TIMEFUNCS_H_ */ -- cgit v1.2.3