1 /**
2   ******************************************************************************
3   * @file    stm32f10x_rtc.h
4   * @author  MCD Application Team
5   * @version V3.1.2
6   * @date    09/28/2009
7   * @brief   This file contains all the functions prototypes for the RTC firmware
8   *          library.
9   ******************************************************************************
10   * @copy
11   *
12   * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
13   * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
14   * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
15   * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
16   * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
17   * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
18   *
19   * <h2><center>&copy; COPYRIGHT 2009 STMicroelectronics</center></h2>
20   */
21 
22 /* Define to prevent recursive inclusion -------------------------------------*/
23 #ifndef __STM32F10x_RTC_H
24 #define __STM32F10x_RTC_H
25 
26 #ifdef __cplusplus
27  extern "C" {
28 #endif
29 
30 /* Includes ------------------------------------------------------------------*/
31 #include "stm32f10x.h"
32 
33 /** @addtogroup STM32F10x_StdPeriph_Driver
34   * @{
35   */
36 
37 /** @addtogroup RTC
38   * @{
39   */
40 
41 /** @defgroup RTC_Exported_Types
42   * @{
43   */
44 
45 /**
46   * @}
47   */
48 
49 /** @defgroup RTC_Exported_Constants
50   * @{
51   */
52 
53 /** @defgroup RTC_interrupts_define
54   * @{
55   */
56 
57 #define RTC_IT_OW            ((uint16_t)0x0004)  /*!< Overflow interrupt */
58 #define RTC_IT_ALR           ((uint16_t)0x0002)  /*!< Alarm interrupt */
59 #define RTC_IT_SEC           ((uint16_t)0x0001)  /*!< Second interrupt */
60 #define IS_RTC_IT(IT) ((((IT) & (uint16_t)0xFFF8) == 0x00) && ((IT) != 0x00))
61 #define IS_RTC_GET_IT(IT) (((IT) == RTC_IT_OW) || ((IT) == RTC_IT_ALR) || \
62                            ((IT) == RTC_IT_SEC))
63 /**
64   * @}
65   */
66 
67 /** @defgroup RTC_interrupts_flags
68   * @{
69   */
70 
71 #define RTC_FLAG_RTOFF       ((uint16_t)0x0020)  /*!< RTC Operation OFF flag */
72 #define RTC_FLAG_RSF         ((uint16_t)0x0008)  /*!< Registers Synchronized flag */
73 #define RTC_FLAG_OW          ((uint16_t)0x0004)  /*!< Overflow flag */
74 #define RTC_FLAG_ALR         ((uint16_t)0x0002)  /*!< Alarm flag */
75 #define RTC_FLAG_SEC         ((uint16_t)0x0001)  /*!< Second flag */
76 #define IS_RTC_CLEAR_FLAG(FLAG) ((((FLAG) & (uint16_t)0xFFF0) == 0x00) && ((FLAG) != 0x00))
77 #define IS_RTC_GET_FLAG(FLAG) (((FLAG) == RTC_FLAG_RTOFF) || ((FLAG) == RTC_FLAG_RSF) || \
78                                ((FLAG) == RTC_FLAG_OW) || ((FLAG) == RTC_FLAG_ALR) || \
79                                ((FLAG) == RTC_FLAG_SEC))
80 #define IS_RTC_PRESCALER(PRESCALER) ((PRESCALER) <= 0xFFFFF)
81 
82 /**
83   * @}
84   */
85 
86 /**
87   * @}
88   */
89 
90 /** @defgroup RTC_Exported_Macros
91   * @{
92   */
93 
94 /**
95   * @}
96   */
97 
98 /** @defgroup RTC_Exported_Functions
99   * @{
100   */
101 
102 void RTC_ITConfig(uint16_t RTC_IT, FunctionalState NewState);
103 void RTC_EnterConfigMode(void);
104 void RTC_ExitConfigMode(void);
105 uint32_t  RTC_GetCounter(void);
106 void RTC_SetCounter(uint32_t CounterValue);
107 void RTC_SetPrescaler(uint32_t PrescalerValue);
108 void RTC_SetAlarm(uint32_t AlarmValue);
109 uint32_t  RTC_GetDivider(void);
110 void RTC_WaitForLastTask(void);
111 void RTC_WaitForSynchro(void);
112 FlagStatus RTC_GetFlagStatus(uint16_t RTC_FLAG);
113 void RTC_ClearFlag(uint16_t RTC_FLAG);
114 ITStatus RTC_GetITStatus(uint16_t RTC_IT);
115 void RTC_ClearITPendingBit(uint16_t RTC_IT);
116 
117 #ifdef __cplusplus
118 }
119 #endif
120 
121 #endif /* __STM32F10x_RTC_H */
122 /**
123   * @}
124   */
125 
126 /**
127   * @}
128   */
129 
130 /**
131   * @}
132   */
133 
134 /******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/
135