Working Version of the Real Time Clock module DS1307.

Dependents:   Rtc_Ds1307_Sample TAREA_5_PROCESADORES Rtc_Ds1307_lcd_alarma Rtc_Ds1307_Reloj_con_alarma_aplazable ... more

This is my implementation of the DS1307.

I plan to add functionality which will make use of the OSC Input and which will increment the time continuously. A query to the module will then only have to be made when the MBED has been powered down.

Revision:
0:3940f0ad2ca5
Child:
1:64274190e842
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Rtc_Ds1307.cpp	Sun Jun 02 09:59:39 2013 +0000
@@ -0,0 +1,45 @@
+/* Rtc_Ds1307.cpp */
+
+#include "Rtc_Ds1307.h"
+
+#define _DEBUG 0
+
+
+#if (_DEBUG && !defined(TARGET_LPC11U24))
+#define INFO(x, ...) std::printf("[Rtc_Ds1307 : INFO]"x"\r\n", ##__VA_ARGS__);
+#define WARN(x, ...) std::printf("[Rtc_Ds1307 : WARN]"x"\r\n", ##__VA_ARGS__);
+#define ERR(x, ...) std::printf("[Rtc_Ds1307 : ERR]"x"\r\n", ##__VA_ARGS__);
+#else
+#define INFO(x, ...)
+#define WARN(x, ...)
+#define ERR(x, ...)
+#endif
+
+
+
+
+Rtc_Ds1307::Rtc_Ds1307(PinName sda, PinName scl)
+{
+    //  Create a new I2C object
+    m_rtc = new I2C(sda, scl);
+    if (m_rtc == NULL)
+        error("Rtc_Ds1307");
+}
+
+Rtc_Ds1307::~Rtc_Ds1307()
+{
+    if (m_rtc != NULL)
+        delete m_rtc;
+}
+
+bool Rtc_Ds1307::setTime(tm& time)
+{
+    INFO("Setting new time : %d:%d:%d\n", time.tm_hour, time.tm_min, time.tm_sec);
+    
+    return true;
+}
+
+bool Rtc_Ds1307::getTime(tm& time)
+{
+    return false;
+}