diff options
Diffstat (limited to 'os/hal/include/rtc.h')
-rw-r--r-- | os/hal/include/rtc.h | 48 |
1 files changed, 30 insertions, 18 deletions
diff --git a/os/hal/include/rtc.h b/os/hal/include/rtc.h index 0c545c3a6..1264c5bd8 100644 --- a/os/hal/include/rtc.h +++ b/os/hal/include/rtc.h @@ -26,18 +26,27 @@ * @{
*/
-
#ifndef _RTC_H_
#define _RTC_H_
-
-
#if HAL_USE_RTC || defined(__DOXYGEN__)
/*===========================================================================*/
/* 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. */
/*===========================================================================*/
@@ -50,9 +59,15 @@ /* Driver data structures and types. */
/*===========================================================================*/
+/**
+ * @brief Type of a structure representing an RTC driver.
+ */
typedef struct RTCDriver RTCDriver;
-typedef void (*rtccb_t)(RTCDriver *rtcp);
+/**
+ * @brief Type of a structure representing an RTC time stamp.
+ */
+typedef struct RTCTime RTCTime;
#include "rtc_lld.h"
@@ -68,20 +83,17 @@ typedef void (*rtccb_t)(RTCDriver *rtcp); extern "C" {
#endif
void rtcInit(void);
-
- #if RTC_SUPPORTS_CALLBACKS
- void rtcStart(RTCDriver *rtcp, const RTCConfig *rtccfgp);
- void rtcStop(void);
- #else /* RTC_SUPPORTS_CALLBACKS */
- #define rtcStart(rtcp, rtccfgp)
- #define rtcStop()
- #endif /* RTC_SUPPORTS_CALLBACKS */
-
- void rtcSetTime(uint32_t tv_sec);
- uint32_t rtcGetSec(void);
- uint16_t rtcGetMsec(void);
- void rtcSetAlarm(uint32_t tv_alarm);
- uint32_t rtcGetAlarm(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 callback);
+#endif
#ifdef __cplusplus
}
#endif
|