C:/nxpdrv/LPC1700CMSIS/Drivers/include/lpc17xx_rtc.h
Go to the documentation of this file.00001 /***********************************************************************/ 00021 /* Peripheral group ----------------------------------------------------------- */ 00027 #ifndef LPC17XX_RTC_H_ 00028 #define LPC17XX_RTC_H_ 00029 00030 /* Includes ------------------------------------------------------------------- */ 00031 #include "LPC17xx.h" 00032 #include "lpc_types.h" 00033 00034 00035 #ifdef __cplusplus 00036 extern "C" 00037 { 00038 #endif 00039 00040 00041 /* Private Macros ------------------------------------------------------------- */ 00050 /* Miscellaneous register group --------------------------------------------- */ 00051 00052 /********************************************************************** 00053 * ILR register definitions 00054 **********************************************************************/ 00056 #define RTC_ILR_BITMASK ((0x00000003)) 00057 00058 #define RTC_IRL_RTCCIF ((1<<0)) 00059 00060 #define RTC_IRL_RTCALF ((1<<1)) 00061 00062 00063 /********************************************************************** 00064 * CCR register definitions 00065 **********************************************************************/ 00067 #define RTC_CCR_BITMASK ((0x00000013)) 00068 00069 #define RTC_CCR_CLKEN ((1<<0)) 00070 00071 #define RTC_CCR_CTCRST ((1<<1)) 00072 00073 #define RTC_CCR_CCALEN ((1<<4)) 00074 00075 00076 /********************************************************************** 00077 * CIIR register definitions 00078 **********************************************************************/ 00080 #define RTC_CIIR_IMSEC ((1<<0)) 00081 00082 #define RTC_CIIR_IMMIN ((1<<1)) 00083 00084 #define RTC_CIIR_IMHOUR ((1<<2)) 00085 00086 #define RTC_CIIR_IMDOM ((1<<3)) 00087 00088 #define RTC_CIIR_IMDOW ((1<<4)) 00089 00090 #define RTC_CIIR_IMDOY ((1<<5)) 00091 00092 #define RTC_CIIR_IMMON ((1<<6)) 00093 00094 #define RTC_CIIR_IMYEAR ((1<<7)) 00095 00096 #define RTC_CIIR_BITMASK ((0xFF)) 00097 00098 /********************************************************************** 00099 * AMR register definitions 00100 **********************************************************************/ 00102 #define RTC_AMR_AMRSEC ((1<<0)) 00103 00104 #define RTC_AMR_AMRMIN ((1<<1)) 00105 00106 #define RTC_AMR_AMRHOUR ((1<<2)) 00107 00108 #define RTC_AMR_AMRDOM ((1<<3)) 00109 00110 #define RTC_AMR_AMRDOW ((1<<4)) 00111 00112 #define RTC_AMR_AMRDOY ((1<<5)) 00113 00114 #define RTC_AMR_AMRMON ((1<<6)) 00115 00116 #define RTC_AMR_AMRYEAR ((1<<7)) 00117 00118 #define RTC_AMR_BITMASK ((0xFF)) 00119 00120 /********************************************************************** 00121 * RTC_AUX register definitions 00122 **********************************************************************/ 00124 #define RTC_AUX_RTC_OSCF ((1<<4)) 00125 00126 /********************************************************************** 00127 * RTC_AUXEN register definitions 00128 **********************************************************************/ 00130 #define RTC_AUXEN_RTC_OSCFEN ((1<<4)) 00131 00132 00133 /* Consolidated time register group ----------------------------------- */ 00135 #define RTC_CTIME0_SECONDS_MASK ((0x3F)) 00136 #define RTC_CTIME0_MINUTES_MASK ((0x3F00)) 00137 #define RTC_CTIME0_HOURS_MASK ((0x1F0000)) 00138 #define RTC_CTIME0_DOW_MASK ((0x7000000)) 00139 00140 #define RTC_CTIME1_DOM_MASK ((0x1F)) 00141 #define RTC_CTIME1_MONTH_MASK ((0xF00)) 00142 #define RTC_CTIME1_YEAR_MASK ((0xFFF0000)) 00143 00144 #define RTC_CTIME2_DOY_MASK ((0xFFF)) 00145 00146 00147 /* Time Counter Group and Alarm register group ----------------------------- */ 00149 #define RTC_SEC_MASK (0x0000003F) 00150 00151 #define RTC_MIN_MASK (0x0000003F) 00152 00153 #define RTC_HOUR_MASK (0x0000001F) 00154 00155 #define RTC_DOM_MASK (0x0000001F) 00156 00157 #define RTC_DOW_MASK (0x00000007) 00158 00159 #define RTC_DOY_MASK (0x000001FF) 00160 00161 #define RTC_MONTH_MASK (0x0000000F) 00162 00163 #define RTC_YEAR_MASK (0x00000FFF) 00164 00165 #define RTC_SECOND_MAX 59 00166 #define RTC_MINUTE_MAX 59 00167 #define RTC_HOUR_MAX 23 00168 #define RTC_MONTH_MIN 1 00169 #define RTC_MONTH_MAX 12 00170 #define RTC_DAYOFMONTH_MIN 1 00171 #define RTC_DAYOFMONTH_MAX 31 00172 #define RTC_DAYOFWEEK_MAX 6 00173 #define RTC_DAYOFYEAR_MIN 1 00174 #define RTC_DAYOFYEAR_MAX 366 00175 #define RTC_YEAR_MAX 4095 00177 /* Calibration register */ 00178 00179 #define RTC_CALIBRATION_CALVAL_MASK ((0x1FFFF)) 00180 00181 #define RTC_CALIBRATION_LIBDIR ((1<<17)) 00182 00183 #define RTC_CALIBRATION_MAX ((0x20000)) 00184 00194 /* Public Types --------------------------------------------------------------- */ 00200 typedef struct { 00201 uint32_t SEC; 00202 uint32_t MIN; 00203 uint32_t HOUR; 00204 uint32_t DOM; 00205 uint32_t DOW; 00206 uint32_t DOY; 00207 uint32_t MONTH; 00208 uint32_t YEAR; 00209 } RTC_TIME_Type; 00210 00212 typedef enum { 00213 RTC_INT_COUNTER_INCREASE = RTC_IRL_RTCCIF, 00214 RTC_INT_ALARM = RTC_IRL_RTCALF, 00215 } RTC_INT_OPT; 00216 00217 #define PARAM_RTC_INT(n) ((n==RTC_INT_COUNTER_INCREASE) || (n==RTC_INT_ALARM)) 00218 00219 00221 typedef enum { 00222 RTC_TIMETYPE_SECOND = 0, 00223 RTC_TIMETYPE_MINUTE = 1, 00224 RTC_TIMETYPE_HOUR = 2, 00225 RTC_TIMETYPE_DAYOFWEEK = 3, 00226 RTC_TIMETYPE_DAYOFMONTH = 4, 00227 RTC_TIMETYPE_DAYOFYEAR = 5, 00228 RTC_TIMETYPE_MONTH = 6, 00229 RTC_TIMETYPE_YEAR = 7, 00230 } RTC_TIMETYPE_Num; 00231 00232 #define PARAM_RTC_TIMETYPE(n) ((n==RTC_TIMETYPE_SECOND) || (n==RTC_TIMETYPE_MINUTE) \ 00233 || (n==RTC_TIMETYPE_HOUR) || (n==RTC_TIMETYPE_DAYOFWEEK) \ 00234 || (n==RTC_TIMETYPE_DAYOFMONTH) || (n==RTC_TIMETYPE_DAYOFYEAR) \ 00235 || (n==RTC_TIMETYPE_MONTH) || (n==RTC_TIMETYPE_YEAR)) 00236 00237 00243 /* Public Macros -------------------------------------------------------------- */ 00249 #define PARAM_RTCx(x) (((uint32_t *)x)==((uint32_t *)LPC_RTC)) 00250 00252 #define RTC_CALIB_DIR_FORWARD ((uint8_t)(0)) 00253 #define RTC_CALIB_DIR_BACKWARD ((uint8_t)(1)) 00254 00255 #define PARAM_RTC_CALIB_DIR(n) ((n==RTC_CALIB_DIR_FORWARD) || (n==RTC_CALIB_DIR_BACKWARD)) 00256 #define PARAM_RTC_GPREG_CH(n) ((n>=0) && (n<=4)) 00257 00258 #define PARAM_RTC_CALIBRATION_DIR(n) 00259 00265 /* Public Functions ----------------------------------------------------------- */ 00270 void RTC_Init (LPC_RTC_TypeDef *RTCx); 00271 void RTC_DeInit(LPC_RTC_TypeDef *RTCx); 00272 void RTC_ResetClockTickCounter(LPC_RTC_TypeDef *RTCx); 00273 void RTC_Cmd (LPC_RTC_TypeDef *RTCx, FunctionalState NewState); 00274 void RTC_CntIncrIntConfig (LPC_RTC_TypeDef *RTCx, uint32_t CntIncrIntType, \ 00275 FunctionalState NewState); 00276 void RTC_AlarmIntConfig (LPC_RTC_TypeDef *RTCx, uint32_t AlarmTimeType, \ 00277 FunctionalState NewState); 00278 void RTC_SetTime (LPC_RTC_TypeDef *RTCx, uint32_t Timetype, uint32_t TimeValue); 00279 uint32_t RTC_GetTime(LPC_RTC_TypeDef *RTCx, uint32_t Timetype); 00280 void RTC_SetFullTime (LPC_RTC_TypeDef *RTCx, RTC_TIME_Type *pFullTime); 00281 void RTC_GetFullTime (LPC_RTC_TypeDef *RTCx, RTC_TIME_Type *pFullTime); 00282 void RTC_SetAlarmTime (LPC_RTC_TypeDef *RTCx, uint32_t Timetype, uint32_t ALValue); 00283 uint32_t RTC_GetAlarmTime (LPC_RTC_TypeDef *RTCx, uint32_t Timetype); 00284 void RTC_SetFullAlarmTime (LPC_RTC_TypeDef *RTCx, RTC_TIME_Type *pFullTime); 00285 void RTC_GetFullAlarmTime (LPC_RTC_TypeDef *RTCx, RTC_TIME_Type *pFullTime); 00286 IntStatus RTC_GetIntPending (LPC_RTC_TypeDef *RTCx, uint32_t IntType); 00287 void RTC_ClearIntPending (LPC_RTC_TypeDef *RTCx, uint32_t IntType); 00288 void RTC_CalibCounterCmd(LPC_RTC_TypeDef *RTCx, FunctionalState NewState); 00289 void RTC_CalibConfig(LPC_RTC_TypeDef *RTCx, uint32_t CalibValue, uint8_t CalibDir); 00290 void RTC_WriteGPREG (LPC_RTC_TypeDef *RTCx, uint8_t Channel, uint32_t Value); 00291 uint32_t RTC_ReadGPREG (LPC_RTC_TypeDef *RTCx, uint8_t Channel); 00292 00297 #ifdef __cplusplus 00298 } 00299 #endif 00300 00301 #endif /* LPC17XX_RTC_H_ */ 00302 00307 /* --------------------------------- End Of File ------------------------------ */
Generated on Mon Feb 8 10:01:37 2010 for LPC1700CMSIS Standard Peripheral Firmware Library by
