mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Committer:
AnnaBridge
Date:
Mon Oct 02 15:33:19 2017 +0100
Revision:
174:b96e65c34a4d
Child:
186:707f6e361f3e
This updates the lib to the mbed lib v 152

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 174:b96e65c34a4d 1 /**************************************************************************//**
AnnaBridge 174:b96e65c34a4d 2 * @file rtc.h
AnnaBridge 174:b96e65c34a4d 3 * @version V1.00
AnnaBridge 174:b96e65c34a4d 4 * $Revision: 7 $
AnnaBridge 174:b96e65c34a4d 5 * $Date: 15/06/26 1:34p $
AnnaBridge 174:b96e65c34a4d 6 * @brief Nano100 series RTC driver header file
AnnaBridge 174:b96e65c34a4d 7 *
AnnaBridge 174:b96e65c34a4d 8 * @note
AnnaBridge 174:b96e65c34a4d 9 * Copyright (C) 2013 Nuvoton Technology Corp. All rights reserved.
AnnaBridge 174:b96e65c34a4d 10 *****************************************************************************/
AnnaBridge 174:b96e65c34a4d 11 #ifndef __RTC_H__
AnnaBridge 174:b96e65c34a4d 12 #define __RTC_H__
AnnaBridge 174:b96e65c34a4d 13
AnnaBridge 174:b96e65c34a4d 14 #ifdef __cplusplus
AnnaBridge 174:b96e65c34a4d 15 extern "C"
AnnaBridge 174:b96e65c34a4d 16 {
AnnaBridge 174:b96e65c34a4d 17 #endif
AnnaBridge 174:b96e65c34a4d 18
AnnaBridge 174:b96e65c34a4d 19
AnnaBridge 174:b96e65c34a4d 20 /** @addtogroup NANO100_Device_Driver NANO100 Device Driver
AnnaBridge 174:b96e65c34a4d 21 @{
AnnaBridge 174:b96e65c34a4d 22 */
AnnaBridge 174:b96e65c34a4d 23
AnnaBridge 174:b96e65c34a4d 24 /** @addtogroup NANO100_RTC_Driver RTC Driver
AnnaBridge 174:b96e65c34a4d 25 @{
AnnaBridge 174:b96e65c34a4d 26 */
AnnaBridge 174:b96e65c34a4d 27
AnnaBridge 174:b96e65c34a4d 28
AnnaBridge 174:b96e65c34a4d 29 /** @addtogroup NANO100_RTC_EXPORTED_CONSTANTS RTC Exported Constants
AnnaBridge 174:b96e65c34a4d 30 @{
AnnaBridge 174:b96e65c34a4d 31 */
AnnaBridge 174:b96e65c34a4d 32
AnnaBridge 174:b96e65c34a4d 33
AnnaBridge 174:b96e65c34a4d 34 #define RTC_INIT_KEY 0xA5EB1357 /*!< RTC Access Key */
AnnaBridge 174:b96e65c34a4d 35 #define RTC_WRITE_KEY 0xA965 /*!< RTC Access Key */
AnnaBridge 174:b96e65c34a4d 36
AnnaBridge 174:b96e65c34a4d 37 #define RTC_WAIT_COUNT 0xFFFFFFFF /*!< Initial Time Out Value */
AnnaBridge 174:b96e65c34a4d 38
AnnaBridge 174:b96e65c34a4d 39 #define RTC_YEAR2000 2000 /*!< RTC Reference */
AnnaBridge 174:b96e65c34a4d 40 #define RTC_FCR_REFERENCE 32761 /*!< RTC Reference */
AnnaBridge 174:b96e65c34a4d 41
AnnaBridge 174:b96e65c34a4d 42 #define RTC_CLOCK_12 0 /*!< RTC 12 Hour */
AnnaBridge 174:b96e65c34a4d 43 #define RTC_CLOCK_24 1 /*!< RTC 24 Hour */
AnnaBridge 174:b96e65c34a4d 44
AnnaBridge 174:b96e65c34a4d 45 #define RTC_AM 1 /*!< RTC AM */
AnnaBridge 174:b96e65c34a4d 46 #define RTC_PM 2 /*!< RTC PM */
AnnaBridge 174:b96e65c34a4d 47
AnnaBridge 174:b96e65c34a4d 48 #define RTC_TICK_1_SEC ((uint32_t) 0x00000000) /*!< Time tick is 1 second */
AnnaBridge 174:b96e65c34a4d 49 #define RTC_TICK_1_2_SEC ((uint32_t) 0x00000001) /*!< Time tick is 1/2 second */
AnnaBridge 174:b96e65c34a4d 50 #define RTC_TICK_1_4_SEC ((uint32_t) 0x00000002) /*!< Time tick is 1/4 second */
AnnaBridge 174:b96e65c34a4d 51 #define RTC_TICK_1_8_SEC ((uint32_t) 0x00000003) /*!< Time tick is 1/8 second */
AnnaBridge 174:b96e65c34a4d 52 #define RTC_TICK_1_16_SEC ((uint32_t) 0x00000004) /*!< Time tick is 1/16 second */
AnnaBridge 174:b96e65c34a4d 53 #define RTC_TICK_1_32_SEC ((uint32_t) 0x00000005) /*!< Time tick is 1/32 second */
AnnaBridge 174:b96e65c34a4d 54 #define RTC_TICK_1_64_SEC ((uint32_t) 0x00000006) /*!< Time tick is 1/64 second */
AnnaBridge 174:b96e65c34a4d 55 #define RTC_TICK_1_128_SEC ((uint32_t) 0x00000007) /*!< Time tick is 1/128 second */
AnnaBridge 174:b96e65c34a4d 56
AnnaBridge 174:b96e65c34a4d 57 #define RTC_SUNDAY ((uint32_t) 0x00000000) /*!< Day of week is sunday */
AnnaBridge 174:b96e65c34a4d 58 #define RTC_MONDAY ((uint32_t) 0x00000001) /*!< Day of week is monday */
AnnaBridge 174:b96e65c34a4d 59 #define RTC_TUESDAY ((uint32_t) 0x00000002) /*!< Day of week is tuesday */
AnnaBridge 174:b96e65c34a4d 60 #define RTC_WEDNESDAY ((uint32_t) 0x00000003) /*!< Day of week is wednesday */
AnnaBridge 174:b96e65c34a4d 61 #define RTC_THURSDAY ((uint32_t) 0x00000004) /*!< Day of week is thursday */
AnnaBridge 174:b96e65c34a4d 62 #define RTC_FRIDAY ((uint32_t) 0x00000005) /*!< Day of week is friday */
AnnaBridge 174:b96e65c34a4d 63 #define RTC_SATURDAY ((uint32_t) 0x00000006) /*!< Day of week is saturday */
AnnaBridge 174:b96e65c34a4d 64
AnnaBridge 174:b96e65c34a4d 65
AnnaBridge 174:b96e65c34a4d 66 #define RTC_SNOOPER_RISING 0 /*!< Snooper Active Rising Edge */
AnnaBridge 174:b96e65c34a4d 67 #define RTC_SNOOPER_FALLING 1 /*!< Snooper Active Falling Edge */
AnnaBridge 174:b96e65c34a4d 68
AnnaBridge 174:b96e65c34a4d 69
AnnaBridge 174:b96e65c34a4d 70 /*@}*/ /* end of group NANO100_RTC_EXPORTED_CONSTANTS */
AnnaBridge 174:b96e65c34a4d 71
AnnaBridge 174:b96e65c34a4d 72
AnnaBridge 174:b96e65c34a4d 73 /** @addtogroup NANO100_RTC_EXPORTED_STRUCTS RTC Exported Structs
AnnaBridge 174:b96e65c34a4d 74 @{
AnnaBridge 174:b96e65c34a4d 75 */
AnnaBridge 174:b96e65c34a4d 76
AnnaBridge 174:b96e65c34a4d 77 /**
AnnaBridge 174:b96e65c34a4d 78 * @brief RTC define Time Data Struct
AnnaBridge 174:b96e65c34a4d 79 */
AnnaBridge 174:b96e65c34a4d 80 typedef struct {
AnnaBridge 174:b96e65c34a4d 81 uint32_t u32Year; /*!< Year value */
AnnaBridge 174:b96e65c34a4d 82 uint32_t u32Month; /*!< Month value */
AnnaBridge 174:b96e65c34a4d 83 uint32_t u32Day; /*!< Day value */
AnnaBridge 174:b96e65c34a4d 84 uint32_t u32DayOfWeek; /*!< Day of week value */
AnnaBridge 174:b96e65c34a4d 85 uint32_t u32Hour; /*!< Hour value */
AnnaBridge 174:b96e65c34a4d 86 uint32_t u32Minute; /*!< Minute value */
AnnaBridge 174:b96e65c34a4d 87 uint32_t u32Second; /*!< Second value */
AnnaBridge 174:b96e65c34a4d 88 uint32_t u32TimeScale; /*!< 12-Hour, 24-Hour */
AnnaBridge 174:b96e65c34a4d 89 uint32_t u32AmPm; /*!< Only Time Scale select 12-hr used */
AnnaBridge 174:b96e65c34a4d 90 } S_RTC_TIME_DATA_T;
AnnaBridge 174:b96e65c34a4d 91
AnnaBridge 174:b96e65c34a4d 92 /*@}*/ /* end of group NANO100_RTC_EXPORTED_STRUCTS */
AnnaBridge 174:b96e65c34a4d 93
AnnaBridge 174:b96e65c34a4d 94
AnnaBridge 174:b96e65c34a4d 95 /** @addtogroup NANO100_RTC_EXPORTED_FUNCTIONS RTC Exported Functions
AnnaBridge 174:b96e65c34a4d 96 @{
AnnaBridge 174:b96e65c34a4d 97 */
AnnaBridge 174:b96e65c34a4d 98
AnnaBridge 174:b96e65c34a4d 99
AnnaBridge 174:b96e65c34a4d 100 /**
AnnaBridge 174:b96e65c34a4d 101 * @brief Read spare register
AnnaBridge 174:b96e65c34a4d 102 *
AnnaBridge 174:b96e65c34a4d 103 * @param[in] u32RegNum The spare register number(0~23)
AnnaBridge 174:b96e65c34a4d 104 *
AnnaBridge 174:b96e65c34a4d 105 * @return Spare register content.
AnnaBridge 174:b96e65c34a4d 106 *
AnnaBridge 174:b96e65c34a4d 107 */
AnnaBridge 174:b96e65c34a4d 108 #define RTC_READ_SPARE_REGISTER(u32RegNum) (RTC->SPR[u32RegNum])
AnnaBridge 174:b96e65c34a4d 109
AnnaBridge 174:b96e65c34a4d 110 /**
AnnaBridge 174:b96e65c34a4d 111 * @brief Write spare register
AnnaBridge 174:b96e65c34a4d 112 *
AnnaBridge 174:b96e65c34a4d 113 * @param[in] u32RegNum The spare register number(0~23)
AnnaBridge 174:b96e65c34a4d 114 * @param[in] u32RegValue The spare register value
AnnaBridge 174:b96e65c34a4d 115 *
AnnaBridge 174:b96e65c34a4d 116 * @return None
AnnaBridge 174:b96e65c34a4d 117 *
AnnaBridge 174:b96e65c34a4d 118 */
AnnaBridge 174:b96e65c34a4d 119 #define RTC_WRITE_SPARE_REGISTER(u32RegNum, u32RegValue) (RTC->SPR[u32RegNum] = u32RegValue)
AnnaBridge 174:b96e65c34a4d 120
AnnaBridge 174:b96e65c34a4d 121 /**
AnnaBridge 174:b96e65c34a4d 122 * @brief According to current time, return this year is leap year or not
AnnaBridge 174:b96e65c34a4d 123 *
AnnaBridge 174:b96e65c34a4d 124 * @param None
AnnaBridge 174:b96e65c34a4d 125 *
AnnaBridge 174:b96e65c34a4d 126 * @return 0 = This year is not a leap year. \n
AnnaBridge 174:b96e65c34a4d 127 * 1 = This year is a leap year.
AnnaBridge 174:b96e65c34a4d 128 *
AnnaBridge 174:b96e65c34a4d 129 */
AnnaBridge 174:b96e65c34a4d 130 #define RTC_IS_LEAP_YEAR() ((RTC->LIR & (RTC_LIR_LIR_Msk))?1:0)
AnnaBridge 174:b96e65c34a4d 131
AnnaBridge 174:b96e65c34a4d 132 /**
AnnaBridge 174:b96e65c34a4d 133 * @brief Clear alarm interrupt status.
AnnaBridge 174:b96e65c34a4d 134 *
AnnaBridge 174:b96e65c34a4d 135 * @param None
AnnaBridge 174:b96e65c34a4d 136 *
AnnaBridge 174:b96e65c34a4d 137 * @return None
AnnaBridge 174:b96e65c34a4d 138 *
AnnaBridge 174:b96e65c34a4d 139 */
AnnaBridge 174:b96e65c34a4d 140 #define RTC_CLEAR_ALARM_INT_FLAG() (RTC->RIIR = RTC_RIIR_AIF_Msk)
AnnaBridge 174:b96e65c34a4d 141
AnnaBridge 174:b96e65c34a4d 142 /**
AnnaBridge 174:b96e65c34a4d 143 * @brief Clear tick interrupt status.
AnnaBridge 174:b96e65c34a4d 144 *
AnnaBridge 174:b96e65c34a4d 145 * @param None
AnnaBridge 174:b96e65c34a4d 146 *
AnnaBridge 174:b96e65c34a4d 147 * @return None
AnnaBridge 174:b96e65c34a4d 148 *
AnnaBridge 174:b96e65c34a4d 149 */
AnnaBridge 174:b96e65c34a4d 150 #define RTC_CLEAR_TICK_INT_FLAG() (RTC->RIIR = RTC_RIIR_TIF_Msk)
AnnaBridge 174:b96e65c34a4d 151
AnnaBridge 174:b96e65c34a4d 152 /**
AnnaBridge 174:b96e65c34a4d 153 * @brief Clear tamper detect pin status.
AnnaBridge 174:b96e65c34a4d 154 *
AnnaBridge 174:b96e65c34a4d 155 * @param[in] u32PinNum tamper detect pin number.
AnnaBridge 174:b96e65c34a4d 156 *
AnnaBridge 174:b96e65c34a4d 157 * @return None
AnnaBridge 174:b96e65c34a4d 158 *
AnnaBridge 174:b96e65c34a4d 159 */
AnnaBridge 174:b96e65c34a4d 160 #define RTC_CLEAR_TAMPER_FLAG(u32PinNum) (RTC->RIIR = RTC_RIIR_SNOOPIF_Msk)
AnnaBridge 174:b96e65c34a4d 161
AnnaBridge 174:b96e65c34a4d 162 /**
AnnaBridge 174:b96e65c34a4d 163 * @brief Get alarm interrupt status.
AnnaBridge 174:b96e65c34a4d 164 *
AnnaBridge 174:b96e65c34a4d 165 * @param None
AnnaBridge 174:b96e65c34a4d 166 *
AnnaBridge 174:b96e65c34a4d 167 * @return Alarm interrupt status
AnnaBridge 174:b96e65c34a4d 168 *
AnnaBridge 174:b96e65c34a4d 169 */
AnnaBridge 174:b96e65c34a4d 170 #define RTC_GET_ALARM_INT_FLAG() ((RTC->RIIR & RTC_RIIR_AIF_Msk) >> RTC_RIIR_AIF_Pos)
AnnaBridge 174:b96e65c34a4d 171
AnnaBridge 174:b96e65c34a4d 172 /**
AnnaBridge 174:b96e65c34a4d 173 * @brief Get alarm interrupt status.
AnnaBridge 174:b96e65c34a4d 174 *
AnnaBridge 174:b96e65c34a4d 175 * @param None
AnnaBridge 174:b96e65c34a4d 176 *
AnnaBridge 174:b96e65c34a4d 177 * @return Alarm interrupt status
AnnaBridge 174:b96e65c34a4d 178 *
AnnaBridge 174:b96e65c34a4d 179 */
AnnaBridge 174:b96e65c34a4d 180 #define RTC_GET_TICK_INT_FLAG() ((RTC->RIIR & RTC_RIIR_TIF_Msk) >> RTC_RIIR_TIF_Pos)
AnnaBridge 174:b96e65c34a4d 181
AnnaBridge 174:b96e65c34a4d 182 /**
AnnaBridge 174:b96e65c34a4d 183 * @brief Get tamper detect pin status.
AnnaBridge 174:b96e65c34a4d 184 *
AnnaBridge 174:b96e65c34a4d 185 * @param None
AnnaBridge 174:b96e65c34a4d 186 *
AnnaBridge 174:b96e65c34a4d 187 * @return 1: Snooper Pin Event Detected \n
AnnaBridge 174:b96e65c34a4d 188 * 0: Snooper Pin Event Never Detected
AnnaBridge 174:b96e65c34a4d 189 *
AnnaBridge 174:b96e65c34a4d 190 */
AnnaBridge 174:b96e65c34a4d 191 #define RTC_GET_TAMPER_FLAG() ( (RTC->RIIR & RTC_RIIR_SNOOPIF_Msk) >> RTC_RIIR_SNOOPIF_Pos)
AnnaBridge 174:b96e65c34a4d 192
AnnaBridge 174:b96e65c34a4d 193 /**
AnnaBridge 174:b96e65c34a4d 194 * @brief Enable Timer tick wakeup function.
AnnaBridge 174:b96e65c34a4d 195 *
AnnaBridge 174:b96e65c34a4d 196 * @param None
AnnaBridge 174:b96e65c34a4d 197 *
AnnaBridge 174:b96e65c34a4d 198 * @return None
AnnaBridge 174:b96e65c34a4d 199 *
AnnaBridge 174:b96e65c34a4d 200 */
AnnaBridge 174:b96e65c34a4d 201 #define RTC_ENABLE_TICK_WAKEUP() (RTC->TTR |= RTC_TTR_TWKE_Msk);
AnnaBridge 174:b96e65c34a4d 202
AnnaBridge 174:b96e65c34a4d 203 /**
AnnaBridge 174:b96e65c34a4d 204 * @brief Disable Timer tick wakeup function.
AnnaBridge 174:b96e65c34a4d 205 *
AnnaBridge 174:b96e65c34a4d 206 * @param None
AnnaBridge 174:b96e65c34a4d 207 *
AnnaBridge 174:b96e65c34a4d 208 * @return None
AnnaBridge 174:b96e65c34a4d 209 *
AnnaBridge 174:b96e65c34a4d 210 */
AnnaBridge 174:b96e65c34a4d 211 #define RTC_DISABLE_TICK_WAKEUP() (RTC->TTR &= ~RTC_TTR_TWKE_Msk);
AnnaBridge 174:b96e65c34a4d 212
AnnaBridge 174:b96e65c34a4d 213
AnnaBridge 174:b96e65c34a4d 214 void RTC_Open(S_RTC_TIME_DATA_T *sPt);
AnnaBridge 174:b96e65c34a4d 215 void RTC_Close(void);
AnnaBridge 174:b96e65c34a4d 216 void RTC_32KCalibration(int32_t i32FrequencyX100);
AnnaBridge 174:b96e65c34a4d 217 void RTC_SetTickPeriod(uint32_t u32TickSelection);
AnnaBridge 174:b96e65c34a4d 218 void RTC_EnableInt(uint32_t u32IntFlagMask);
AnnaBridge 174:b96e65c34a4d 219 void RTC_DisableInt(uint32_t u32IntFlagMask);
AnnaBridge 174:b96e65c34a4d 220 uint32_t RTC_GetDayOfWeek(void);
AnnaBridge 174:b96e65c34a4d 221 void RTC_DisableTamperDetection(void);
AnnaBridge 174:b96e65c34a4d 222 void RTC_EnableTamperDetection(uint32_t u32PinCondition);
AnnaBridge 174:b96e65c34a4d 223 void RTC_SetAlarmTime(uint32_t u32Hour, uint32_t u32Minute, uint32_t u32Second, uint32_t u32TimeMode, uint32_t u32AmPm);
AnnaBridge 174:b96e65c34a4d 224 void RTC_SetAlarmDate(uint32_t u32Year, uint32_t u32Month, uint32_t u32Day);
AnnaBridge 174:b96e65c34a4d 225 void RTC_SetTime(uint32_t u32Hour, uint32_t u32Minute, uint32_t u32Second, uint32_t u32TimeMode, uint32_t u32AmPm);
AnnaBridge 174:b96e65c34a4d 226 void RTC_SetDate(uint32_t u32Year, uint32_t u32Month, uint32_t u32Day, uint32_t u32DayOfWeek);
AnnaBridge 174:b96e65c34a4d 227 void RTC_SetAlarmDateAndTime(S_RTC_TIME_DATA_T *sPt);
AnnaBridge 174:b96e65c34a4d 228 void RTC_SetDateAndTime(S_RTC_TIME_DATA_T *sPt);
AnnaBridge 174:b96e65c34a4d 229 void RTC_GetAlarmDateAndTime(S_RTC_TIME_DATA_T *sPt);
AnnaBridge 174:b96e65c34a4d 230 void RTC_GetDateAndTime(S_RTC_TIME_DATA_T *sPt);
AnnaBridge 174:b96e65c34a4d 231
AnnaBridge 174:b96e65c34a4d 232
AnnaBridge 174:b96e65c34a4d 233
AnnaBridge 174:b96e65c34a4d 234 /*@}*/ /* end of group NANO100_RTC_EXPORTED_FUNCTIONS */
AnnaBridge 174:b96e65c34a4d 235
AnnaBridge 174:b96e65c34a4d 236
AnnaBridge 174:b96e65c34a4d 237 /*@}*/ /* end of group NANO100_RTC_Driver */
AnnaBridge 174:b96e65c34a4d 238
AnnaBridge 174:b96e65c34a4d 239 /*@}*/ /* end of group NANO100_Device_Driver */
AnnaBridge 174:b96e65c34a4d 240
AnnaBridge 174:b96e65c34a4d 241
AnnaBridge 174:b96e65c34a4d 242 #ifdef __cplusplus
AnnaBridge 174:b96e65c34a4d 243 }
AnnaBridge 174:b96e65c34a4d 244 #endif
AnnaBridge 174:b96e65c34a4d 245
AnnaBridge 174:b96e65c34a4d 246 #endif /* __RTC_H__ */
AnnaBridge 174:b96e65c34a4d 247
AnnaBridge 174:b96e65c34a4d 248
AnnaBridge 174:b96e65c34a4d 249 /*** (C) COPYRIGHT 2013 Nuvoton Technology Corp. ***/
AnnaBridge 174:b96e65c34a4d 250
AnnaBridge 174:b96e65c34a4d 251
AnnaBridge 174:b96e65c34a4d 252