mbed library sources. Supersedes mbed-src.
Dependents: Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more
targets/TARGET_NUVOTON/TARGET_NANO100/device/StdDriver/nano100_timer.h@174:b96e65c34a4d, 2017-10-02 (annotated)
- 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?
User | Revision | Line number | New 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. ***/ |