aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/include
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2011-10-01 08:04:14 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2011-10-01 08:04:14 +0000
commit2950a0a7b8316a742a7a67b5acb4f224a98397ff (patch)
treef3c81f2ad4202021f05d419d44f3876d9be01950 /os/hal/include
parentd2fa0e3fdee679a6cdd5dd6616aca527eca3f080 (diff)
downloadChibiOS-2950a0a7b8316a742a7a67b5acb4f224a98397ff.tar.gz
ChibiOS-2950a0a7b8316a742a7a67b5acb4f224a98397ff.tar.bz2
ChibiOS-2950a0a7b8316a742a7a67b5acb4f224a98397ff.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@3413 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/hal/include')
-rw-r--r--os/hal/include/rtc.h33
1 files changed, 24 insertions, 9 deletions
diff --git a/os/hal/include/rtc.h b/os/hal/include/rtc.h
index aa2562c69..1264c5bd8 100644
--- a/os/hal/include/rtc.h
+++ b/os/hal/include/rtc.h
@@ -35,6 +35,18 @@
/* Driver constants. */
/*===========================================================================*/
+/**
+ * @name Date/Time bit masks
+ * @{
+ */
+#define RTC_TIME_SECONDS_MASK 0x0000001F /* @brief Seconds mask. */
+#define RTC_TIME_MINUTES_MASK 0x000007E0 /* @brief Minutes mask. */
+#define RTC_TIME_HOURS_MASK 0x0000F800 /* @brief Hours mask. */
+#define RTC_DATE_DAYS_MASK 0x001F0000 /* @brief Days mask. */
+#define RTC_DATE_MONTHS_MASK 0x01E00000 /* @brief Months mask. */
+#define RTC_DATE_YEARS_MASK 0xFE000000 /* @brief Years mask. */
+/** @} */
+
/*===========================================================================*/
/* Driver pre-compile time settings. */
/*===========================================================================*/
@@ -53,9 +65,9 @@
typedef struct RTCDriver RTCDriver;
/**
- * @brief Type of an RTC callback.
+ * @brief Type of a structure representing an RTC time stamp.
*/
-typedef void (*rtccb_t)(RTCDriver *rtcp);
+typedef struct RTCTime RTCTime;
#include "rtc_lld.h"
@@ -71,14 +83,17 @@ typedef void (*rtccb_t)(RTCDriver *rtcp);
extern "C" {
#endif
void rtcInit(void);
+ void rtcSetTime(RTCDriver *rtcp, const RTCTime *timespec);
+ void rtcGetTime(RTCDriver *rtcp, RTCTime *timespec);
+#if RTC_ALARMS > 0
+ void rtcSetAlarm(RTCDriver *rtcp,
+ rtcalarm_t alarm,
+ const RTCAlarm *alarmspec);
+ void rtcGetAlarm(RTCDriver *rtcp, rtcalarm_t alarm, RTCAlarm *alarmspec);
+#endif
#if RTC_SUPPORTS_CALLBACKS
- void rtcSetCallback(RTCDriver *rtcp, rtccb_t overflowcb,
- rtccb_t secondcb, rtccb_t alarmcb);
-#endif /* RTC_SUPPORTS_CALLBACKS */
- void rtcSetTime(RTCDateTime *timespec);
- void rtcGetTime(RTCDateTime *timespec);
- void rtcSetAlarm(RTCDateTime *timespec);
- void rtcGetAlarm(RTCDateTime *timespec);
+ void rtcSetCallback(RTCDriver *rtcp, rtccb_t callback);
+#endif
#ifdef __cplusplus
}
#endif