RTEMS  5.0.0
rtc.h
Go to the documentation of this file.
1 /* ---------------------------------------------------------------------------- */
2 /* Atmel Microcontroller Software Support */
3 /* SAM Software Package License */
4 /* ---------------------------------------------------------------------------- */
5 /* Copyright (c) 2015, Atmel Corporation */
6 /* */
7 /* All rights reserved. */
8 /* */
9 /* Redistribution and use in source and binary forms, with or without */
10 /* modification, are permitted provided that the following condition is met: */
11 /* */
12 /* - Redistributions of source code must retain the above copyright notice, */
13 /* this list of conditions and the disclaimer below. */
14 /* */
15 /* Atmel's name may not be used to endorse or promote products derived from */
16 /* this software without specific prior written permission. */
17 /* */
18 /* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR */
19 /* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
20 /* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE */
21 /* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, */
22 /* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */
23 /* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */
24 /* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
25 /* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
26 /* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
27 /* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
28 /* ---------------------------------------------------------------------------- */
29 
37 #ifndef _RTC_
38 #define _RTC_
39 
40 /*----------------------------------------------------------------------------
41  * Headers
42  *----------------------------------------------------------------------------*/
43 #include "chip.h"
44 
45 #include <stdint.h>
46 
47 /*----------------------------------------------------------------------------
48  * Definitions
49  *----------------------------------------------------------------------------*/
50 
51 #define RTC_HOUR_BIT_LEN_MASK 0x3F
52 #define RTC_MIN_BIT_LEN_MASK 0x7F
53 #define RTC_SEC_BIT_LEN_MASK 0x7F
54 #define RTC_CENT_BIT_LEN_MASK 0x7F
55 #define RTC_YEAR_BIT_LEN_MASK 0xFF
56 #define RTC_MONTH_BIT_LEN_MASK 0x1F
57 #define RTC_DATE_BIT_LEN_MASK 0x3F
58 #define RTC_WEEK_BIT_LEN_MASK 0x07
59 
60 /*----------------------------------------------------------------------------
61  * Exported functions
62  *----------------------------------------------------------------------------*/
63 
64 #ifdef __cplusplus
65 extern "C" {
66 #endif
67 
68 extern void RTC_SetHourMode(Rtc *pRtc, uint32_t dwMode);
69 
70 extern uint32_t RTC_GetHourMode(Rtc *pRtc);
71 
72 extern void RTC_EnableIt(Rtc *pRtc, uint32_t dwSources);
73 
74 extern void RTC_DisableIt(Rtc *pRtc, uint32_t dwSources);
75 
76 extern int RTC_SetTime(Rtc *pRtc, uint8_t ucHour, uint8_t ucMinute,
77  uint8_t ucSecond);
78 
79 extern void RTC_GetTime(Rtc *pRtc, uint8_t *pucHour, uint8_t *pucMinute,
80  uint8_t *pucSecond);
81 
82 extern int RTC_SetTimeAlarm(Rtc *pRtc, uint8_t *pucHour, uint8_t *pucMinute,
83  uint8_t *pucSecond);
84 
85 extern void RTC_GetDate(Rtc *pRtc, uint16_t *pwYear, uint8_t *pucMonth,
86  uint8_t *pucDay, uint8_t *pucWeek);
87 
88 extern int RTC_SetDate(Rtc *pRtc, uint16_t wYear, uint8_t ucMonth,
89  uint8_t ucDay, uint8_t ucWeek);
90 
91 extern int RTC_SetDateAlarm(Rtc *pRtc, uint8_t *pucMonth, uint8_t *pucDay);
92 
93 extern void RTC_ClearSCCR(Rtc *pRtc, uint32_t dwMask);
94 
95 extern uint32_t RTC_GetSR(Rtc *pRtc, uint32_t dwMask);
96 
97 #ifdef __cplusplus
98 }
99 #endif
100 
101 #endif /* #ifndef _RTC_ */
102 
void RTC_EnableIt(Rtc *pRtc, uint32_t dwSources)
Enables the selected interrupt sources of the RTC.
Definition: rtc.c:126
void RTC_SetHourMode(Rtc *pRtc, uint32_t dwMode)
Sets the RTC in either 12 or 24 hour mode.
Definition: rtc.c:97
uint32_t RTC_GetSR(Rtc *pRtc, uint32_t dwMask)
Get flag bits of status register in the RTC.
Definition: rtc.c:444
void RTC_DisableIt(Rtc *pRtc, uint32_t dwSources)
Disables the selected interrupt sources of the RTC.
Definition: rtc.c:140
int RTC_SetDateAlarm(Rtc *pRtc, uint8_t *pucMonth, uint8_t *pucDay)
Sets a date alarm in the RTC. The alarm will match only the provided values; Passing a null-pointer d...
Definition: rtc.c:398
uint32_t RTC_GetHourMode(Rtc *pRtc)
Gets the RTC mode.
Definition: rtc.c:109
int RTC_SetTimeAlarm(Rtc *pRtc, uint8_t *pucHour, uint8_t *pucMinute, uint8_t *pucSecond)
Sets a time alarm on the RTC. The match is performed only on the provided variables; Setting all poin...
Definition: rtc.c:260
int RTC_SetTime(Rtc *pRtc, uint8_t ucHour, uint8_t ucMinute, uint8_t ucSecond)
Sets the current time in the RTC.
Definition: rtc.c:162
void RTC_GetDate(Rtc *pRtc, uint16_t *pwYear, uint8_t *pucMonth, uint8_t *pucDay, uint8_t *pucWeek)
Retrieves the current year, month and day from the RTC. Month, day and week values are numbered start...
Definition: rtc.c:296
void RTC_ClearSCCR(Rtc *pRtc, uint32_t dwMask)
Clear flag bits of status clear command register in the RTC.
Definition: rtc.c:428
int RTC_SetDate(Rtc *pRtc, uint16_t wYear, uint8_t ucMonth, uint8_t ucDay, uint8_t ucWeek)
Sets the current year, month and day in the RTC. Month, day and week values must be numbered starting...
Definition: rtc.c:342
Rtc hardware registers.
Definition: component_rtc.h:41
void RTC_GetTime(Rtc *pRtc, uint8_t *pucHour, uint8_t *pucMinute, uint8_t *pucSecond)
Retrieves the current time as stored in the RTC in several variables.
Definition: rtc.c:211