summaryrefslogtreecommitdiff
path: root/firmware/common/timefuncs.c
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2002-11-20 00:00:25 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2002-11-20 00:00:25 +0000
commit85969853d5533b8b70192590274c5d63f31735ec (patch)
treeabe57ef5a6b1a11f9b94fc6e032da34796bb373b /firmware/common/timefuncs.c
parentd703389780f5c7a627bff3f6daf6d72e4547a9db (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.c53
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;
+}