Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of RTC-DS1307 by
Revision 5:30531f2121a2, committed 2013-06-23
- Comitter:
- leihen
- Date:
- Sun Jun 23 17:02:21 2013 +0000
- Parent:
- 4:d2cc690aaac7
- Child:
- 6:bba89618ee63
- Commit message:
- Update
Changed in this revision
--- a/RtcCls.c Sun Jun 23 16:29:35 2013 +0000
+++ b/RtcCls.c Sun Jun 23 17:02:21 2013 +0000
@@ -1,6 +1,5 @@
+
#include "RtcCls.h"
-#define DEBUG
-#include "debug.h"
@@ -8,10 +7,10 @@
RtcCls::RtcCls(PinName sda, PinName scl, PinName sqw, bool bUseSqw)
: Rtc_Ds1307(sda, scl), m_sqw(sqw), m_bUseSqw(bUseSqw), m_bAlarmEnabled(false), m_alarmfunc(NULL)
{
- // Only register the callback and start the SQW if requested to do so. Otherwise the system
+ // Only register the callback and start the SQW if requested to do so. Otherwise the system
// will use the MBED built-in RTC.
if (m_bUseSqw) {
- Time t;
+ Time_rtc t;
// start the wave
setSquareWaveOutput(true, RS_1Hz);
// query time
@@ -38,20 +37,20 @@
{
// when not using the HW support, we have to query the RTC chip. Other wise we can just return out stored value
if (!m_bUseSqw) {
- Time t;
+ Time_rtc t;
getTime(t);
struct tm now = {t.sec, t.min, t.hour, t.date, t.mon, t.year};
- m_time = mktime(&tm);
+ m_time = mktime(&tm);
}
return m_time;
}
void RtcCls::setTime(time_t t)
{
- Time tim;
+ Time_rtc tim;
struct tm *now;
now = localtime(&t);
-
+
tim.sec = now->tm_sec;
tim.min = now->tm_min;
tim.hour = now->tm_hour;
@@ -59,10 +58,6 @@
tim.mon = now->tm_mon;
tim.year = now->tm_year + 1900;
tim.wday = now->tm_wday +1;
-
+
setTime( tim, true, true);
-}
-
-
-
-
+}
\ No newline at end of file
--- a/RtcCls.h Sun Jun 23 16:29:35 2013 +0000
+++ b/RtcCls.h Sun Jun 23 17:02:21 2013 +0000
@@ -1,38 +1,36 @@
-#ifndef __RTC_H__
-#define __RTC_H__
+#ifndef __DAMNFILEHEADER__
+#define __DAMNFILEHEADER__
+
#include "Rtc_Ds1307.h"
-#include "mbed.h"
typedef void (*callback_t)(void);
class RtcCls : public Rtc_Ds1307
{
- protected:
- InterruptIn m_sqw;
- bool m_bUseSqw;
- time_t m_time; // Only used in case of SQW use
-
- bool m_bAlarmEnabled;
- callback_t m_alarmfunc;
- time_t m_alarmTime;
-
- public:
- RtcCls(PinName sda, PinName scl, PinName sqw, bool bUseSqw);
+protected:
+// InterruptIn m_sqw;
+ bool m_bUseSqw;
+ time_t m_time; // Only used in case of SQW use
+
+ bool m_bAlarmEnabled;
+ callback_t m_alarmfunc;
+ time_t m_alarmTime;
+
+public:
+ RtcCls(PinName sda, PinName scl, PinName sqw, bool bUseSqw);
- protected:
- static void _callback(void);
-
- public:
- time_t getTime();
- void setTime(time_t t);
- public:
- void setAlarm(int nSeconds, callback_t alarmfunc)
- {
- m_alarmfunc = alarmfunc;
- m_alarmTime = m_time + nSeconds;
- m_bAlarmEnabled = (alarmfunc == NULL) ? false : true;
- }
+protected:
+ static void _callback(void);
+
+public:
+ time_t getTime();
+ void setTime(time_t t);
+public:
+ void setAlarm(int nSeconds, callback_t alarmfunc) {
+ m_alarmfunc = alarmfunc;
+ m_alarmTime = m_time + nSeconds;
+ m_bAlarmEnabled = (alarmfunc == NULL) ? false : true;
+ }
};
-
-#endif // __RTC_H__
\ No newline at end of file
+#endif // __RTC_CLS_H__
--- a/Rtc_Ds1307.cpp Sun Jun 23 16:29:35 2013 +0000
+++ b/Rtc_Ds1307.cpp Sun Jun 23 17:02:21 2013 +0000
@@ -1,8 +1,9 @@
/* Rtc_Ds1307.cpp */
-
+#include "mbed.h"
#include "Rtc_Ds1307.h"
+#ifndef DEBUG
//#define DEBUG
-#undef DEBUG
+#endif
#include "debug.h"
const char *Rtc_Ds1307::m_weekDays[] = { "Saturday", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" };
@@ -25,7 +26,7 @@
delete m_rtc;
}
-bool Rtc_Ds1307::setTime(Time& time, bool start, bool thm)
+bool Rtc_Ds1307::setTime(Time_rtc& time, bool start, bool thm)
{
char buffer[7];
INFO("reading clock registers to write the new time : %d:%d:%d\n", time.hour, time.min, time.sec);
@@ -57,7 +58,7 @@
return true;
}
-bool Rtc_Ds1307::getTime(Time& time)
+bool Rtc_Ds1307::getTime(Time_rtc& time)
{
char buffer[7];
bool thm = false;
@@ -133,7 +134,7 @@
return true;
}
-bool Rtc_Ds1307::setSquareWaveOutput(bool ena, RateSelect_t rs)
+bool Rtc_Ds1307::setSquareWaveOutput(bool ena, SqwRateSelect_t rs)
{
char reg;
INFO("Reading register value first\n");
--- a/Rtc_Ds1307.h Sun Jun 23 16:29:35 2013 +0000
+++ b/Rtc_Ds1307.h Sun Jun 23 17:02:21 2013 +0000
@@ -23,7 +23,6 @@
#ifndef __RTC_DS1307_H__
#define __RTC_DS1307_H__
-#include "mbed.h"
/** Structure which is used to exchange the time and date
*/
@@ -35,18 +34,16 @@
int date; /*!< day of month [0..31] */
int mon; /*!< month of year [1..12] */
int year; /*!< year [2000..2255] */
-} Time;
+} Time_rtc;
/** RateSelect specifies the valid frequency values for the square wave output
*/
typedef enum {
- RS_1Hz= 0, /*!< 1 Hz frequency output */
- RS_4kHz= 1, /*!< 4.096 kHz frequency output */
- RS_8kHz= 2, /*!< 8.192 kHz frequency output */
- RS_32kHz= 3 /*!< 32.768 kHz frequency output */
-
-} RateSelect_t;
-
+ RS1Hz = 0,
+ RS4kHz = 1,
+ RS8kHz = 2,
+ RS32kHz = 3
+} SqwRateSelect_t;
/** Class Rtc_Ds1307 implements the real time clock module DS1307
*
@@ -78,7 +75,7 @@
*
* @returns true if successful, otherwise an acknowledge error occured
*/
- bool getTime(Time& time);
+ bool getTime(Time_rtc& time);
/** Write the given time onto the RTC chip
*
@@ -90,7 +87,7 @@
*
* @returns true if successful, otherwise an acknowledge error occured
*/
- bool setTime(Time& time, bool start, bool thm);
+ bool setTime(Time_rtc& time, bool start, bool thm);
/** Start the clock. Please note that the seconds register need to be read and
* written in order to start or stop the clock. This can lead to an error
@@ -128,7 +125,7 @@
*
* @return true if the operation was successful or false otherwise
*/
- bool setSquareWaveOutput(bool ena, RateSelect_t rs);
+ bool setSquareWaveOutput(bool ena, SqwRateSelect_t rs);
private:
bool read(int address, char* buffer, int len);
