diff options
author | Linus Nielsen Feltzing <linus@haxx.se> | 2002-11-20 00:00:25 +0000 |
---|---|---|
committer | Linus Nielsen Feltzing <linus@haxx.se> | 2002-11-20 00:00:25 +0000 |
commit | 85969853d5533b8b70192590274c5d63f31735ec (patch) | |
tree | abe57ef5a6b1a11f9b94fc6e032da34796bb373b /firmware/common/timefuncs.c | |
parent | d703389780f5c7a627bff3f6daf6d72e4547a9db (diff) |
New time functions
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2861 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/common/timefuncs.c')
-rw-r--r-- | firmware/common/timefuncs.c | 53 |
1 files changed, 53 insertions, 0 deletions
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; +} |