AvrIO  1.4.5
Bibliothèque C modulaire pour ATMEL AVR
rtc.h
1 
21 #ifndef _AVRIO_RTC_H_
22 #define _AVRIO_RTC_H_
23 
24 #include <avrio/defs.h>
25 #include <avrio/mutex.h>
26 #include <stdio.h>
27 
28 __BEGIN_C_DECLS
29 /* ========================================================================== */
30 
46 /* constants ================================================================ */
53 typedef enum {
54 
55  MONDAY = 2,
56  TUESDAY = 3,
57  WEDNESDAY = 4,
58  THURSDAY = 5,
59  FRIDAY = 6,
60  SATURDAY = 7,
61  SUNDAY = 1
62 } eRtcWeekDay;
63 
64 /* structures =============================================================== */
65 
70 typedef struct xRtcTime {
71 
72  uint8_t ucSecond;
73  uint8_t ucMinute;
74  uint8_t ucHour;
75  uint8_t ucWeekDay;
76  uint8_t ucDate;
77  uint8_t ucMonth;
78  uint16_t usYear;
79 } xRtcTime;
80 
81 /* internal public functions ================================================ */
86 int iRtcInit (int iArg1);
87 
93 int iRtcSetTime (const xRtcTime * pxTime);
94 
100 int iRtcGetTime (xRtcTime * pxTime);
101 
108 
114 bool xRtcYearIsLeap (int usYear);
115 
122 int iRtcSetAlm (int8_t index, const xRtcTime * pxTime);
123 
130 int iRtcGetAlm (int8_t index, xRtcTime * pxTime);
131 
138 xMutex * pxRtcAlmMutex (int8_t index);
139 
145 const char *pcRtcWeekdayToStr (uint8_t wd);
146 
153 int iRtcDateToStr (char * pcStr, const xRtcTime * pxDate);
154 
161 int iRtcTimeToStr (char * pcStr, const xRtcTime * pxTime);
162 
169 int iRtcPrintDateToStream (FILE * pxStream, const xRtcTime * pxDate);
170 
177 int iRtcPrintTimeToStream (FILE * pxStream, const xRtcTime * pxTime);
178 
179 /* macros =================================================================== */
186 #define iRtcPrintDate(d) iRtcPrintDateToStream(stdout, d)
187 
194 #define iRtcPrintTime(t) iRtcPrintTimeToStream(stdout, t)
195 
196 // -----------------------------------------------------------------------------
197 # if defined(__DOXYGEN__)
198  /*
199  * __DOXYGEN__ defined
200  * Partie documentation ne devant pas être compilée.
201  * =========================================================================
202  */
207 # else
208  /*
209  * __DOXYGEN__ not defined
210  * Partie ne devant pas être documentée.
211  * =========================================================================
212  */
213 # endif /* __DOXYGEN__ not defined */
214 
215 /* ========================================================================== */
216 __END_C_DECLS
217 #endif /* _AVRIO_RTC_H_ not defined */
int iRtcDateToStr(char *pcStr, const xRtcTime *pxDate)
Renvoie la chaîne de caractères associée à une date.
int iRtcPrintTimeToStream(FILE *pxStream, const xRtcTime *pxTime)
Ecrit la chaîne de caractères associée à une heure sur un flux.
int iRtcTimeToStr(char *pcStr, const xRtcTime *pxTime)
Renvoie la chaîne de caractères associée à une heure.
Definition: rtc.h:60
int iRtcSetAlm(int8_t index, const xRtcTime *pxTime)
Arme une alarme.
uint8_t ucHour
Definition: rtc.h:74
struct xRtcTime xRtcTime
Structure Temps Permet le stockage d&#39;une date et d&#39;une heure.
bool xRtcYearIsLeap(int usYear)
Indique si une année est bisextile.
const char * pcRtcWeekdayToStr(uint8_t wd)
Renvoie la chaîne de caractères associée à un jour de la semaine.
Definition: rtc.h:56
volatile uint8_t xMutex
Type mutex.
Definition: mutex.h:59
uint8_t ucDate
Definition: rtc.h:76
uint8_t ucWeekDay
Definition: rtc.h:75
Definition: rtc.h:55
uint16_t usYear
Definition: rtc.h:78
Definition: rtc.h:61
uint8_t ucSecond
Definition: rtc.h:72
Definition: rtc.h:57
xMutex * pxRtcHeartBeatsMutex(void)
Renvoie un pointeur sur le mutex indiquant la cadence des secondes.
uint8_t ucMonth
Definition: rtc.h:77
int iRtcSetTime(const xRtcTime *pxTime)
Mets à l&#39;heure de l&#39;horloge RTC.
int iRtcGetAlm(int8_t index, xRtcTime *pxTime)
Lecture d&#39;une alarme.
Structure Temps Permet le stockage d&#39;une date et d&#39;une heure.
Definition: rtc.h:70
Definition: rtc.h:58
uint8_t ucMinute
Definition: rtc.h:73
int iRtcGetTime(xRtcTime *pxTime)
Lecture de l&#39;horloge RTC.
int iRtcInit(int iArg1)
Initialise le module RTC.
eRtcWeekDay
Definition: rtc.h:53
int iRtcPrintDateToStream(FILE *pxStream, const xRtcTime *pxDate)
Ecrit la chaîne de caractères associée à une date sur un flux.
xMutex * pxRtcAlmMutex(int8_t index)
Renvoie un pointeur sur le mutex de déclenchement d&#39;une alarme.
Definition: rtc.h:59