Robobo
rtc.h
Go to the documentation of this file.
1 /* ----------------------------------------------------------------------------
2  * SAM Software Package License
3  * ----------------------------------------------------------------------------
4  * Copyright (c) 2011-2012, Atmel Corporation
5  *
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following condition is met:
10  *
11  * - Redistributions of source code must retain the above copyright notice,
12  * this list of conditions and the disclaimer below.
13  *
14  * Atmel's name may not be used to endorse or promote products derived from
15  * this software without specific prior written permission.
16  *
17  * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
18  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
20  * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
21  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
23  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
24  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  * ----------------------------------------------------------------------------
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, uint8_t ucSecond ) ;
77 
78 extern void RTC_GetTime( Rtc* pRtc, uint8_t *pucHour, uint8_t *pucMinute, uint8_t *pucSecond ) ;
79 
80 extern int RTC_SetTimeAlarm( Rtc* pRtc, uint8_t *pucHour, uint8_t *pucMinute, uint8_t *pucSecond ) ;
81 
82 extern void RTC_GetDate( Rtc* pRtc, uint16_t *pwYear, uint8_t *pucMonth, uint8_t *pucDay, uint8_t *pucWeek ) ;
83 
84 extern int RTC_SetDate( Rtc* pRtc, uint16_t wYear, uint8_t ucMonth, uint8_t ucDay, uint8_t ucWeek ) ;
85 
86 extern int RTC_SetDateAlarm( Rtc* pRtc, uint8_t *pucMonth, uint8_t *pucDay ) ;
87 
88 extern void RTC_ClearSCCR( Rtc* pRtc, uint32_t dwMask ) ;
89 
90 extern uint32_t RTC_GetSR( Rtc* pRtc, uint32_t dwMask ) ;
91 
92 #ifdef __cplusplus
93 }
94 #endif
95 
96 #endif /* #ifndef _RTC_ */
97 
uint32_t RTC_GetSR(Rtc *pRtc, uint32_t dwMask)
Get flag bits of status register in the RTC.
Definition: rtc.c:442
void RTC_ClearSCCR(Rtc *pRtc, uint32_t dwMask)
Clear flag bits of status clear command register in the RTC.
Definition: rtc.c:427
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:253
void RTC_SetHourMode(Rtc *pRtc, uint32_t dwMode)
Sets the RTC in either 12 or 24 hour mode.
Definition: rtc.c:95
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:201
int RTC_SetTime(Rtc *pRtc, uint8_t ucHour, uint8_t ucMinute, uint8_t ucSecond)
Sets the current time in the RTC.
Definition: rtc.c:154
uint32_t RTC_GetHourMode(Rtc *pRtc)
Gets the RTC mode.
Definition: rtc.c:107
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:399
void RTC_DisableIt(Rtc *pRtc, uint32_t dwSources)
Disables the selected interrupt sources of the RTC.
Definition: rtc.c:134
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:343
Rtc hardware registers.
Definition: component_rtc.h:41
void RTC_EnableIt(Rtc *pRtc, uint32_t dwSources)
Enables the selected interrupt sources of the RTC.
Definition: rtc.c:122
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:289