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
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 timer.h
AnnaBridge 174:b96e65c34a4d 3 * @version V1.00
AnnaBridge 174:b96e65c34a4d 4 * $Revision: 6 $
AnnaBridge 174:b96e65c34a4d 5 * $Date: 14/08/29 7:56p $
AnnaBridge 174:b96e65c34a4d 6 * @brief Nano100 series TIMER 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 __TIMER_H__
AnnaBridge 174:b96e65c34a4d 12 #define __TIMER_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_TIMER_Driver TIMER Driver
AnnaBridge 174:b96e65c34a4d 25 @{
AnnaBridge 174:b96e65c34a4d 26 */
AnnaBridge 174:b96e65c34a4d 27
AnnaBridge 174:b96e65c34a4d 28 /** @addtogroup NANO100_TIMER_EXPORTED_CONSTANTS TIMER Exported Constants
AnnaBridge 174:b96e65c34a4d 29 @{
AnnaBridge 174:b96e65c34a4d 30 */
AnnaBridge 174:b96e65c34a4d 31
AnnaBridge 174:b96e65c34a4d 32 #define TIMER_ONESHOT_MODE (0UL) /*!< Timer working in one shot mode */
AnnaBridge 174:b96e65c34a4d 33 #define TIMER_PERIODIC_MODE (1UL << TIMER_CTL_MODE_SEL_Pos) /*!< Timer working in periodic mode */
AnnaBridge 174:b96e65c34a4d 34 #define TIMER_TOGGLE_MODE (2UL << TIMER_CTL_MODE_SEL_Pos) /*!< Timer working in toggle mode */
AnnaBridge 174:b96e65c34a4d 35 #define TIMER_CONTINUOUS_MODE (3UL << TIMER_CTL_MODE_SEL_Pos) /*!< Timer working in continuous mode */
AnnaBridge 174:b96e65c34a4d 36
AnnaBridge 174:b96e65c34a4d 37 #define TIMER_CAPTURE_FREE_COUNTING_MODE (0UL) /*!< Free counting mode */
AnnaBridge 174:b96e65c34a4d 38 #define TIMER_CAPTURE_TRIGGER_COUNTING_MODE (TIMER_CTL_TCAP_CNT_MODE_Msk) /*!< Trigger counting mode */
AnnaBridge 174:b96e65c34a4d 39 #define TIMER_CAPTURE_COUNTER_RESET_MODE (TIMER_CTL_TCAP_MODE_Msk) /*!< Counter reset mode */
AnnaBridge 174:b96e65c34a4d 40
AnnaBridge 174:b96e65c34a4d 41 #define TIMER_CAPTURE_FALLING_EDGE (0UL) /*!< Falling edge trigger timer capture */
AnnaBridge 174:b96e65c34a4d 42 #define TIMER_CAPTURE_RISING_EDGE (1UL << TIMER_CTL_TCAP_EDGE_Pos) /*!< Rising edge trigger timer capture */
AnnaBridge 174:b96e65c34a4d 43 #define TIMER_CAPTURE_FALLING_THEN_RISING_EDGE (2UL << TIMER_CTL_TCAP_EDGE_Pos) /*!< Falling edge then rising edge trigger timer capture */
AnnaBridge 174:b96e65c34a4d 44 #define TIMER_CAPTURE_RISING_THEN_FALLING_EDGE (3UL << TIMER_CTL_TCAP_EDGE_Pos) /*!< Rising edge then falling edge trigger timer capture */
AnnaBridge 174:b96e65c34a4d 45
AnnaBridge 174:b96e65c34a4d 46 #define TIMER_COUNTER_RISING_EDGE (TIMER_CTL_EVENT_EDGE_Msk) /*!< Counter increase on rising edge */
AnnaBridge 174:b96e65c34a4d 47 #define TIMER_COUNTER_FALLING_EDGE (0UL) /*!< Counter increase on falling edge */
AnnaBridge 174:b96e65c34a4d 48
AnnaBridge 174:b96e65c34a4d 49 #define TIMER_TIMEOUT_TRIGGER (0UL) /*!< Timer timeout trigger other modules */
AnnaBridge 174:b96e65c34a4d 50 #define TIMER_CAPTURE_TRIGGER (TIMER_CTL_CAP_TRG_EN_Msk) /*!< Timer capture trigger other modules */
AnnaBridge 174:b96e65c34a4d 51
AnnaBridge 174:b96e65c34a4d 52 /*@}*/ /* end of group NANO100_TIMER_EXPORTED_CONSTANTS */
AnnaBridge 174:b96e65c34a4d 53
AnnaBridge 174:b96e65c34a4d 54
AnnaBridge 174:b96e65c34a4d 55 /** @addtogroup NANO100_TIMER_EXPORTED_FUNCTIONS TIMER Exported Functions
AnnaBridge 174:b96e65c34a4d 56 @{
AnnaBridge 174:b96e65c34a4d 57 */
AnnaBridge 174:b96e65c34a4d 58
AnnaBridge 174:b96e65c34a4d 59 /**
AnnaBridge 174:b96e65c34a4d 60 * @brief This macro is used to set new Timer compared value
AnnaBridge 174:b96e65c34a4d 61 * @param[in] timer The base address of Timer module
AnnaBridge 174:b96e65c34a4d 62 * @param[in] u32Value Timer compare value. Valid values are between 2 to 0xFFFFFF
AnnaBridge 174:b96e65c34a4d 63 * @return None
AnnaBridge 174:b96e65c34a4d 64 * \hideinitializer
AnnaBridge 174:b96e65c34a4d 65 */
AnnaBridge 174:b96e65c34a4d 66 #define TIMER_SET_CMP_VALUE(timer, u32Value) ((timer)->CMPR = (u32Value))
AnnaBridge 174:b96e65c34a4d 67
AnnaBridge 174:b96e65c34a4d 68 /**
AnnaBridge 174:b96e65c34a4d 69 * @brief This macro is used to set new Timer prescale value
AnnaBridge 174:b96e65c34a4d 70 * @param[in] timer The base address of Timer module
AnnaBridge 174:b96e65c34a4d 71 * @param[in] u32Value Timer prescale value. Valid values are between 0 to 0xFF
AnnaBridge 174:b96e65c34a4d 72 * @return None
AnnaBridge 174:b96e65c34a4d 73 * @note Clock input is divided by (prescale + 1) before it is fed into timer
AnnaBridge 174:b96e65c34a4d 74 * \hideinitializer
AnnaBridge 174:b96e65c34a4d 75 */
AnnaBridge 174:b96e65c34a4d 76 #define TIMER_SET_PRESCALE_VALUE(timer, u32Value) ((timer)->PRECNT = (u32Value))
AnnaBridge 174:b96e65c34a4d 77
AnnaBridge 174:b96e65c34a4d 78 /**
AnnaBridge 174:b96e65c34a4d 79 * @brief This macro is used to check if specify Timer is inactive or active
AnnaBridge 174:b96e65c34a4d 80 * @return timer is activate or inactivate
AnnaBridge 174:b96e65c34a4d 81 * @retval 0 Timer 24-bit up counter is inactive
AnnaBridge 174:b96e65c34a4d 82 * @retval 1 Timer 24-bit up counter is active
AnnaBridge 174:b96e65c34a4d 83 * \hideinitializer
AnnaBridge 174:b96e65c34a4d 84 */
AnnaBridge 174:b96e65c34a4d 85 #define TIMER_IS_ACTIVE(timer) ((timer)->CTL & TIMER_CTL_TMR_ACT_Msk ? 1 : 0)
AnnaBridge 174:b96e65c34a4d 86
AnnaBridge 174:b96e65c34a4d 87
AnnaBridge 174:b96e65c34a4d 88 /**
AnnaBridge 174:b96e65c34a4d 89 * @brief This function is used to start Timer counting
AnnaBridge 174:b96e65c34a4d 90 * @param[in] timer The base address of Timer module
AnnaBridge 174:b96e65c34a4d 91 * @return None
AnnaBridge 174:b96e65c34a4d 92 */
AnnaBridge 174:b96e65c34a4d 93 __STATIC_INLINE void TIMER_Start(TIMER_T *timer)
AnnaBridge 174:b96e65c34a4d 94 {
AnnaBridge 174:b96e65c34a4d 95 timer->CTL |= TIMER_CTL_TMR_EN_Msk;
AnnaBridge 174:b96e65c34a4d 96 }
AnnaBridge 174:b96e65c34a4d 97
AnnaBridge 174:b96e65c34a4d 98 /**
AnnaBridge 174:b96e65c34a4d 99 * @brief This function is used to stop Timer counting
AnnaBridge 174:b96e65c34a4d 100 * @param[in] timer The base address of Timer module
AnnaBridge 174:b96e65c34a4d 101 * @return None
AnnaBridge 174:b96e65c34a4d 102 */
AnnaBridge 174:b96e65c34a4d 103 __STATIC_INLINE void TIMER_Stop(TIMER_T *timer)
AnnaBridge 174:b96e65c34a4d 104 {
AnnaBridge 174:b96e65c34a4d 105 timer->CTL &= ~TIMER_CTL_TMR_EN_Msk;
AnnaBridge 174:b96e65c34a4d 106 }
AnnaBridge 174:b96e65c34a4d 107
AnnaBridge 174:b96e65c34a4d 108 /**
AnnaBridge 174:b96e65c34a4d 109 * @brief This function is used to enable the Timer wake-up function
AnnaBridge 174:b96e65c34a4d 110 * @param[in] timer The base address of Timer module
AnnaBridge 174:b96e65c34a4d 111 * @return None
AnnaBridge 174:b96e65c34a4d 112 * @note To wake the system from power down mode, timer clock source must be ether LXT or LIRC
AnnaBridge 174:b96e65c34a4d 113 */
AnnaBridge 174:b96e65c34a4d 114 __STATIC_INLINE void TIMER_EnableWakeup(TIMER_T *timer)
AnnaBridge 174:b96e65c34a4d 115 {
AnnaBridge 174:b96e65c34a4d 116 timer->CTL |= TIMER_CTL_WAKE_EN_Msk;
AnnaBridge 174:b96e65c34a4d 117 }
AnnaBridge 174:b96e65c34a4d 118
AnnaBridge 174:b96e65c34a4d 119 /**
AnnaBridge 174:b96e65c34a4d 120 * @brief This function is used to disable the Timer wake-up function
AnnaBridge 174:b96e65c34a4d 121 * @param[in] timer The base address of Timer module
AnnaBridge 174:b96e65c34a4d 122 * @return None
AnnaBridge 174:b96e65c34a4d 123 */
AnnaBridge 174:b96e65c34a4d 124 __STATIC_INLINE void TIMER_DisableWakeup(TIMER_T *timer)
AnnaBridge 174:b96e65c34a4d 125 {
AnnaBridge 174:b96e65c34a4d 126 timer->CTL &= ~TIMER_CTL_WAKE_EN_Msk;
AnnaBridge 174:b96e65c34a4d 127 }
AnnaBridge 174:b96e65c34a4d 128
AnnaBridge 174:b96e65c34a4d 129
AnnaBridge 174:b96e65c34a4d 130 /**
AnnaBridge 174:b96e65c34a4d 131 * @brief This function is used to enable the capture pin detection de-bounce function.
AnnaBridge 174:b96e65c34a4d 132 * @param[in] timer The base address of Timer module
AnnaBridge 174:b96e65c34a4d 133 * @return None
AnnaBridge 174:b96e65c34a4d 134 */
AnnaBridge 174:b96e65c34a4d 135 __STATIC_INLINE void TIMER_EnableCaptureDebounce(TIMER_T *timer)
AnnaBridge 174:b96e65c34a4d 136 {
AnnaBridge 174:b96e65c34a4d 137 timer->CTL |= TIMER_CTL_TCAP_DEB_EN_Msk;
AnnaBridge 174:b96e65c34a4d 138 }
AnnaBridge 174:b96e65c34a4d 139
AnnaBridge 174:b96e65c34a4d 140 /**
AnnaBridge 174:b96e65c34a4d 141 * @brief This function is used to disable the capture pin detection de-bounce function.
AnnaBridge 174:b96e65c34a4d 142 * @param[in] timer The base address of Timer module
AnnaBridge 174:b96e65c34a4d 143 * @return None
AnnaBridge 174:b96e65c34a4d 144 */
AnnaBridge 174:b96e65c34a4d 145 __STATIC_INLINE void TIMER_DisableCaptureDebounce(TIMER_T *timer)
AnnaBridge 174:b96e65c34a4d 146 {
AnnaBridge 174:b96e65c34a4d 147 timer->CTL &= ~TIMER_CTL_TCAP_DEB_EN_Msk;
AnnaBridge 174:b96e65c34a4d 148 }
AnnaBridge 174:b96e65c34a4d 149
AnnaBridge 174:b96e65c34a4d 150
AnnaBridge 174:b96e65c34a4d 151 /**
AnnaBridge 174:b96e65c34a4d 152 * @brief This function is used to enable the counter pin detection de-bounce function.
AnnaBridge 174:b96e65c34a4d 153 * @param[in] timer The base address of Timer module
AnnaBridge 174:b96e65c34a4d 154 * @return None
AnnaBridge 174:b96e65c34a4d 155 */
AnnaBridge 174:b96e65c34a4d 156 __STATIC_INLINE void TIMER_EnableEventCounterDebounce(TIMER_T *timer)
AnnaBridge 174:b96e65c34a4d 157 {
AnnaBridge 174:b96e65c34a4d 158 timer->CTL |= TIMER_CTL_EVNT_DEB_EN_Msk;
AnnaBridge 174:b96e65c34a4d 159 }
AnnaBridge 174:b96e65c34a4d 160
AnnaBridge 174:b96e65c34a4d 161 /**
AnnaBridge 174:b96e65c34a4d 162 * @brief This function is used to disable the counter pin detection de-bounce function.
AnnaBridge 174:b96e65c34a4d 163 * @param[in] timer The base address of Timer module
AnnaBridge 174:b96e65c34a4d 164 * @return None
AnnaBridge 174:b96e65c34a4d 165 */
AnnaBridge 174:b96e65c34a4d 166 __STATIC_INLINE void TIMER_DisableEventCounterDebounce(TIMER_T *timer)
AnnaBridge 174:b96e65c34a4d 167 {
AnnaBridge 174:b96e65c34a4d 168 timer->CTL &= ~TIMER_CTL_EVNT_DEB_EN_Msk;
AnnaBridge 174:b96e65c34a4d 169 }
AnnaBridge 174:b96e65c34a4d 170
AnnaBridge 174:b96e65c34a4d 171 /**
AnnaBridge 174:b96e65c34a4d 172 * @brief This function is used to enable the Timer time-out interrupt function.
AnnaBridge 174:b96e65c34a4d 173 * @param[in] timer The base address of Timer module
AnnaBridge 174:b96e65c34a4d 174 * @return None
AnnaBridge 174:b96e65c34a4d 175 */
AnnaBridge 174:b96e65c34a4d 176 __STATIC_INLINE void TIMER_EnableInt(TIMER_T *timer)
AnnaBridge 174:b96e65c34a4d 177 {
AnnaBridge 174:b96e65c34a4d 178 timer->IER |= TIMER_IER_TMR_IE_Msk;
AnnaBridge 174:b96e65c34a4d 179 }
AnnaBridge 174:b96e65c34a4d 180
AnnaBridge 174:b96e65c34a4d 181 /**
AnnaBridge 174:b96e65c34a4d 182 * @brief This function is used to disable the Timer time-out interrupt function.
AnnaBridge 174:b96e65c34a4d 183 * @param[in] timer The base address of Timer module
AnnaBridge 174:b96e65c34a4d 184 * @return None
AnnaBridge 174:b96e65c34a4d 185 */
AnnaBridge 174:b96e65c34a4d 186 __STATIC_INLINE void TIMER_DisableInt(TIMER_T *timer)
AnnaBridge 174:b96e65c34a4d 187 {
AnnaBridge 174:b96e65c34a4d 188 timer->IER &= ~TIMER_IER_TMR_IE_Msk;
AnnaBridge 174:b96e65c34a4d 189 }
AnnaBridge 174:b96e65c34a4d 190
AnnaBridge 174:b96e65c34a4d 191 /**
AnnaBridge 174:b96e65c34a4d 192 * @brief This function is used to enable the Timer capture trigger interrupt function.
AnnaBridge 174:b96e65c34a4d 193 * @param[in] timer The base address of Timer module
AnnaBridge 174:b96e65c34a4d 194 * @return None
AnnaBridge 174:b96e65c34a4d 195 */
AnnaBridge 174:b96e65c34a4d 196 __STATIC_INLINE void TIMER_EnableCaptureInt(TIMER_T *timer)
AnnaBridge 174:b96e65c34a4d 197 {
AnnaBridge 174:b96e65c34a4d 198 timer->IER |= TIMER_IER_TCAP_IE_Msk;
AnnaBridge 174:b96e65c34a4d 199 }
AnnaBridge 174:b96e65c34a4d 200
AnnaBridge 174:b96e65c34a4d 201 /**
AnnaBridge 174:b96e65c34a4d 202 * @brief This function is used to disable the Timer capture trigger interrupt function.
AnnaBridge 174:b96e65c34a4d 203 * @param[in] timer The base address of Timer module
AnnaBridge 174:b96e65c34a4d 204 * @return None
AnnaBridge 174:b96e65c34a4d 205 */
AnnaBridge 174:b96e65c34a4d 206 __STATIC_INLINE void TIMER_DisableCaptureInt(TIMER_T *timer)
AnnaBridge 174:b96e65c34a4d 207 {
AnnaBridge 174:b96e65c34a4d 208 timer->IER &= ~TIMER_IER_TCAP_IE_Msk;
AnnaBridge 174:b96e65c34a4d 209 }
AnnaBridge 174:b96e65c34a4d 210
AnnaBridge 174:b96e65c34a4d 211 /**
AnnaBridge 174:b96e65c34a4d 212 * @brief This function indicates Timer time-out interrupt occurred or not.
AnnaBridge 174:b96e65c34a4d 213 * @param[in] timer The base address of Timer module
AnnaBridge 174:b96e65c34a4d 214 * @return Timer time-out interrupt occurred or not
AnnaBridge 174:b96e65c34a4d 215 * @retval 0 Timer time-out interrupt did not occur
AnnaBridge 174:b96e65c34a4d 216 * @retval 1 Timer time-out interrupt occurred
AnnaBridge 174:b96e65c34a4d 217 */
AnnaBridge 174:b96e65c34a4d 218 __STATIC_INLINE uint32_t TIMER_GetIntFlag(TIMER_T *timer)
AnnaBridge 174:b96e65c34a4d 219 {
AnnaBridge 174:b96e65c34a4d 220 return(timer->ISR & TIMER_ISR_TMR_IS_Msk ? 1 : 0);
AnnaBridge 174:b96e65c34a4d 221 }
AnnaBridge 174:b96e65c34a4d 222
AnnaBridge 174:b96e65c34a4d 223 /**
AnnaBridge 174:b96e65c34a4d 224 * @brief This function clears the Timer time-out interrupt flag.
AnnaBridge 174:b96e65c34a4d 225 * @param[in] timer The base address of Timer module
AnnaBridge 174:b96e65c34a4d 226 * @return None
AnnaBridge 174:b96e65c34a4d 227 */
AnnaBridge 174:b96e65c34a4d 228 __STATIC_INLINE void TIMER_ClearIntFlag(TIMER_T *timer)
AnnaBridge 174:b96e65c34a4d 229 {
AnnaBridge 174:b96e65c34a4d 230 timer->ISR = TIMER_ISR_TMR_IS_Msk;
AnnaBridge 174:b96e65c34a4d 231 }
AnnaBridge 174:b96e65c34a4d 232
AnnaBridge 174:b96e65c34a4d 233 /**
AnnaBridge 174:b96e65c34a4d 234 * @brief This function indicates Timer capture interrupt occurred or not.
AnnaBridge 174:b96e65c34a4d 235 * @param[in] timer The base address of Timer module
AnnaBridge 174:b96e65c34a4d 236 * @return Timer capture interrupt occurred or not
AnnaBridge 174:b96e65c34a4d 237 * @retval 0 Timer capture interrupt did not occur
AnnaBridge 174:b96e65c34a4d 238 * @retval 1 Timer capture interrupt occurred
AnnaBridge 174:b96e65c34a4d 239 */
AnnaBridge 174:b96e65c34a4d 240 __STATIC_INLINE uint32_t TIMER_GetCaptureIntFlag(TIMER_T *timer)
AnnaBridge 174:b96e65c34a4d 241 {
AnnaBridge 174:b96e65c34a4d 242 return(timer->ISR & TIMER_ISR_TCAP_IS_Msk ? 1 : 0);
AnnaBridge 174:b96e65c34a4d 243 }
AnnaBridge 174:b96e65c34a4d 244
AnnaBridge 174:b96e65c34a4d 245 /**
AnnaBridge 174:b96e65c34a4d 246 * @brief This function clears the Timer capture interrupt flag.
AnnaBridge 174:b96e65c34a4d 247 * @param[in] timer The base address of Timer module
AnnaBridge 174:b96e65c34a4d 248 * @return None
AnnaBridge 174:b96e65c34a4d 249 */
AnnaBridge 174:b96e65c34a4d 250 __STATIC_INLINE void TIMER_ClearCaptureIntFlag(TIMER_T *timer)
AnnaBridge 174:b96e65c34a4d 251 {
AnnaBridge 174:b96e65c34a4d 252 timer->ISR = TIMER_ISR_TCAP_IS_Msk;
AnnaBridge 174:b96e65c34a4d 253 }
AnnaBridge 174:b96e65c34a4d 254
AnnaBridge 174:b96e65c34a4d 255 /**
AnnaBridge 174:b96e65c34a4d 256 * @brief This function indicates Timer has waked up system or not.
AnnaBridge 174:b96e65c34a4d 257 * @param[in] timer The base address of Timer module
AnnaBridge 174:b96e65c34a4d 258 * @return Timer has waked up system or not
AnnaBridge 174:b96e65c34a4d 259 * @retval 0 Timer did not wake up system
AnnaBridge 174:b96e65c34a4d 260 * @retval 1 Timer wake up system
AnnaBridge 174:b96e65c34a4d 261 */
AnnaBridge 174:b96e65c34a4d 262 __STATIC_INLINE uint32_t TIMER_GetWakeupFlag(TIMER_T *timer)
AnnaBridge 174:b96e65c34a4d 263 {
AnnaBridge 174:b96e65c34a4d 264 return (timer->ISR & TIMER_ISR_TMR_WAKE_STS_Msk ? 1 : 0);
AnnaBridge 174:b96e65c34a4d 265 }
AnnaBridge 174:b96e65c34a4d 266
AnnaBridge 174:b96e65c34a4d 267 /**
AnnaBridge 174:b96e65c34a4d 268 * @brief This function clears the Timer wakeup interrupt flag.
AnnaBridge 174:b96e65c34a4d 269 * @param[in] timer The base address of Timer module
AnnaBridge 174:b96e65c34a4d 270 * @return None
AnnaBridge 174:b96e65c34a4d 271 */
AnnaBridge 174:b96e65c34a4d 272 __STATIC_INLINE void TIMER_ClearWakeupFlag(TIMER_T *timer)
AnnaBridge 174:b96e65c34a4d 273 {
AnnaBridge 174:b96e65c34a4d 274 timer->ISR = TIMER_ISR_TMR_WAKE_STS_Msk;
AnnaBridge 174:b96e65c34a4d 275 }
AnnaBridge 174:b96e65c34a4d 276
AnnaBridge 174:b96e65c34a4d 277 /**
AnnaBridge 174:b96e65c34a4d 278 * @brief This function gets the Timer capture data.
AnnaBridge 174:b96e65c34a4d 279 * @param[in] timer The base address of Timer module
AnnaBridge 174:b96e65c34a4d 280 * @return Timer capture data value
AnnaBridge 174:b96e65c34a4d 281 */
AnnaBridge 174:b96e65c34a4d 282 __STATIC_INLINE uint32_t TIMER_GetCaptureData(TIMER_T *timer)
AnnaBridge 174:b96e65c34a4d 283 {
AnnaBridge 174:b96e65c34a4d 284 return timer->TCAP;
AnnaBridge 174:b96e65c34a4d 285 }
AnnaBridge 174:b96e65c34a4d 286
AnnaBridge 174:b96e65c34a4d 287 /**
AnnaBridge 174:b96e65c34a4d 288 * @brief This function reports the current timer counter value.
AnnaBridge 174:b96e65c34a4d 289 * @param[in] timer The base address of Timer module
AnnaBridge 174:b96e65c34a4d 290 * @return Timer counter value
AnnaBridge 174:b96e65c34a4d 291 */
AnnaBridge 174:b96e65c34a4d 292 __STATIC_INLINE uint32_t TIMER_GetCounter(TIMER_T *timer)
AnnaBridge 174:b96e65c34a4d 293 {
AnnaBridge 174:b96e65c34a4d 294 return timer->DR;
AnnaBridge 174:b96e65c34a4d 295 }
AnnaBridge 174:b96e65c34a4d 296
AnnaBridge 174:b96e65c34a4d 297 uint32_t TIMER_Open(TIMER_T *timer, uint32_t u32Mode, uint32_t u32Freq);
AnnaBridge 174:b96e65c34a4d 298 void TIMER_Close(TIMER_T *timer);
AnnaBridge 174:b96e65c34a4d 299 void TIMER_Delay(TIMER_T *timer, uint32_t u32Usec);
AnnaBridge 174:b96e65c34a4d 300 void TIMER_EnableCapture(TIMER_T *timer, uint32_t u32CapMode, uint32_t u32Edge);
AnnaBridge 174:b96e65c34a4d 301 void TIMER_DisableCapture(TIMER_T *timer);
AnnaBridge 174:b96e65c34a4d 302 void TIMER_EnableEventCounter(TIMER_T *timer, uint32_t u32Edge);
AnnaBridge 174:b96e65c34a4d 303 void TIMER_DisableEventCounter(TIMER_T *timer);
AnnaBridge 174:b96e65c34a4d 304 uint32_t TIMER_GetModuleClock(TIMER_T *timer);
AnnaBridge 174:b96e65c34a4d 305 void TIMER_EnableFreqCounter(TIMER_T *timer,
AnnaBridge 174:b96e65c34a4d 306 uint32_t u32DropCount,
AnnaBridge 174:b96e65c34a4d 307 uint32_t u32Timeout,
AnnaBridge 174:b96e65c34a4d 308 uint32_t u32EnableInt);
AnnaBridge 174:b96e65c34a4d 309 void TIMER_DisableFreqCounter(TIMER_T *timer);
AnnaBridge 174:b96e65c34a4d 310 void TIMER_SetTriggerSource(TIMER_T *timer, uint32_t u32Src);
AnnaBridge 174:b96e65c34a4d 311 void TIMER_SetTriggerTarget(TIMER_T *timer, uint32_t u32Mask);
AnnaBridge 174:b96e65c34a4d 312
AnnaBridge 174:b96e65c34a4d 313 /*@}*/ /* end of group NANO100_TIMER_EXPORTED_FUNCTIONS */
AnnaBridge 174:b96e65c34a4d 314
AnnaBridge 174:b96e65c34a4d 315 /*@}*/ /* end of group NANO100_TIMER_Driver */
AnnaBridge 174:b96e65c34a4d 316
AnnaBridge 174:b96e65c34a4d 317 /*@}*/ /* end of group NANO100_Device_Driver */
AnnaBridge 174:b96e65c34a4d 318
AnnaBridge 174:b96e65c34a4d 319 #ifdef __cplusplus
AnnaBridge 174:b96e65c34a4d 320 }
AnnaBridge 174:b96e65c34a4d 321 #endif
AnnaBridge 174:b96e65c34a4d 322
AnnaBridge 174:b96e65c34a4d 323 #endif //__TIMER_H__
AnnaBridge 174:b96e65c34a4d 324
AnnaBridge 174:b96e65c34a4d 325 /*** (C) COPYRIGHT 2013 Nuvoton Technology Corp. ***/