RTEMS 5.2
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
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
65extern "C" {
66#endif
67
68extern void RTC_SetHourMode(Rtc *pRtc, uint32_t dwMode);
69
70extern uint32_t RTC_GetHourMode(Rtc *pRtc);
71
72extern void RTC_EnableIt(Rtc *pRtc, uint32_t dwSources);
73
74extern void RTC_DisableIt(Rtc *pRtc, uint32_t dwSources);
75
76extern int RTC_SetTime(Rtc *pRtc, uint8_t ucHour, uint8_t ucMinute,
77 uint8_t ucSecond);
78
79extern void RTC_GetTime(Rtc *pRtc, uint8_t *pucHour, uint8_t *pucMinute,
80 uint8_t *pucSecond);
81
82extern int RTC_SetTimeAlarm(Rtc *pRtc, uint8_t *pucHour, uint8_t *pucMinute,
83 uint8_t *pucSecond);
84
85extern void RTC_GetDate(Rtc *pRtc, uint16_t *pwYear, uint8_t *pucMonth,
86 uint8_t *pucDay, uint8_t *pucWeek);
87
88extern int RTC_SetDate(Rtc *pRtc, uint16_t wYear, uint8_t ucMonth,
89 uint8_t ucDay, uint8_t ucWeek);
90
91extern int RTC_SetDateAlarm(Rtc *pRtc, uint8_t *pucMonth, uint8_t *pucDay);
92
93extern void RTC_ClearSCCR(Rtc *pRtc, uint32_t dwMask);
94
95extern uint32_t RTC_GetSR(Rtc *pRtc, uint32_t dwMask);
96
97#ifdef __cplusplus
98}
99#endif
100
101#endif /* #ifndef _RTC_ */
102
void RTC_SetHourMode(Rtc *pRtc, uint32_t dwMode)
Sets the RTC in either 12 or 24 hour mode.
Definition: rtc.c:97
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_EnableIt(Rtc *pRtc, uint32_t dwSources)
Enables the selected interrupt sources of the RTC.
Definition: rtc.c:126
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
void RTC_ClearSCCR(Rtc *pRtc, uint32_t dwMask)
Clear flag bits of status clear command register in the RTC.
Definition: rtc.c:434
uint32_t RTC_GetSR(Rtc *pRtc, uint32_t dwMask)
Get flag bits of status register in the RTC.
Definition: rtc.c:450
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:302
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:404
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
uint32_t RTC_GetHourMode(Rtc *pRtc)
Gets the RTC mode.
Definition: rtc.c:109
void RTC_DisableIt(Rtc *pRtc, uint32_t dwSources)
Disables the selected interrupt sources of the RTC.
Definition: rtc.c:140
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:348
Rtc hardware registers.
Definition: component_rtc.h:41