The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
Parent:
171:3a7713b1edbc
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Anna Bridge 142:4eea097334d6 1 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 2 * @file em_vcmp.h
Anna Bridge 142:4eea097334d6 3 * @brief Voltage Comparator (VCMP) peripheral API
Anna Bridge 160:5571c4ff569f 4 * @version 5.3.3
Anna Bridge 142:4eea097334d6 5 *******************************************************************************
Anna Bridge 160:5571c4ff569f 6 * # License
Anna Bridge 142:4eea097334d6 7 * <b>Copyright 2016 Silicon Laboratories, Inc. http://www.silabs.com</b>
Anna Bridge 142:4eea097334d6 8 *******************************************************************************
Anna Bridge 142:4eea097334d6 9 *
Anna Bridge 142:4eea097334d6 10 * Permission is granted to anyone to use this software for any purpose,
Anna Bridge 142:4eea097334d6 11 * including commercial applications, and to alter it and redistribute it
Anna Bridge 142:4eea097334d6 12 * freely, subject to the following restrictions:
Anna Bridge 142:4eea097334d6 13 *
Anna Bridge 142:4eea097334d6 14 * 1. The origin of this software must not be misrepresented; you must not
Anna Bridge 142:4eea097334d6 15 * claim that you wrote the original software.
Anna Bridge 142:4eea097334d6 16 * 2. Altered source versions must be plainly marked as such, and must not be
Anna Bridge 142:4eea097334d6 17 * misrepresented as being the original software.
Anna Bridge 142:4eea097334d6 18 * 3. This notice may not be removed or altered from any source distribution.
Anna Bridge 142:4eea097334d6 19 *
Anna Bridge 142:4eea097334d6 20 * DISCLAIMER OF WARRANTY/LIMITATION OF REMEDIES: Silicon Labs has no
Anna Bridge 142:4eea097334d6 21 * obligation to support this Software. Silicon Labs is providing the
Anna Bridge 142:4eea097334d6 22 * Software "AS IS", with no express or implied warranties of any kind,
Anna Bridge 142:4eea097334d6 23 * including, but not limited to, any implied warranties of merchantability
Anna Bridge 142:4eea097334d6 24 * or fitness for any particular purpose or warranties against infringement
Anna Bridge 142:4eea097334d6 25 * of any proprietary rights of a third party.
Anna Bridge 142:4eea097334d6 26 *
Anna Bridge 142:4eea097334d6 27 * Silicon Labs will not be liable for any consequential, incidental, or
Anna Bridge 142:4eea097334d6 28 * special damages, or any other relief, or for any claim by any third party,
Anna Bridge 142:4eea097334d6 29 * arising from your use of this Software.
Anna Bridge 142:4eea097334d6 30 *
Anna Bridge 142:4eea097334d6 31 ******************************************************************************/
Anna Bridge 142:4eea097334d6 32
Anna Bridge 142:4eea097334d6 33 #ifndef EM_VCMP_H
Anna Bridge 142:4eea097334d6 34 #define EM_VCMP_H
Anna Bridge 142:4eea097334d6 35
Anna Bridge 142:4eea097334d6 36 #include "em_device.h"
Anna Bridge 142:4eea097334d6 37 #if defined(VCMP_COUNT) && (VCMP_COUNT > 0)
Anna Bridge 142:4eea097334d6 38
Anna Bridge 142:4eea097334d6 39 #include <stdint.h>
Anna Bridge 142:4eea097334d6 40 #include <stdbool.h>
Anna Bridge 142:4eea097334d6 41
Anna Bridge 142:4eea097334d6 42 #ifdef __cplusplus
Anna Bridge 142:4eea097334d6 43 extern "C" {
Anna Bridge 142:4eea097334d6 44 #endif
Anna Bridge 142:4eea097334d6 45
Anna Bridge 142:4eea097334d6 46 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 47 * @addtogroup emlib
Anna Bridge 142:4eea097334d6 48 * @{
Anna Bridge 142:4eea097334d6 49 ******************************************************************************/
Anna Bridge 142:4eea097334d6 50
Anna Bridge 142:4eea097334d6 51 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 52 * @addtogroup VCMP
Anna Bridge 142:4eea097334d6 53 * @{
Anna Bridge 142:4eea097334d6 54 ******************************************************************************/
Anna Bridge 142:4eea097334d6 55
Anna Bridge 142:4eea097334d6 56 /*******************************************************************************
Anna Bridge 142:4eea097334d6 57 ******************************** ENUMS ************************************
Anna Bridge 142:4eea097334d6 58 ******************************************************************************/
Anna Bridge 142:4eea097334d6 59
Anna Bridge 142:4eea097334d6 60 /** Warm-up Time in High Frequency Peripheral Clock cycles */
Anna Bridge 160:5571c4ff569f 61 typedef enum {
Anna Bridge 142:4eea097334d6 62 /** 4 cycles */
Anna Bridge 142:4eea097334d6 63 vcmpWarmTime4Cycles = _VCMP_CTRL_WARMTIME_4CYCLES,
Anna Bridge 142:4eea097334d6 64 /** 8 cycles */
Anna Bridge 142:4eea097334d6 65 vcmpWarmTime8Cycles = _VCMP_CTRL_WARMTIME_8CYCLES,
Anna Bridge 142:4eea097334d6 66 /** 16 cycles */
Anna Bridge 142:4eea097334d6 67 vcmpWarmTime16Cycles = _VCMP_CTRL_WARMTIME_16CYCLES,
Anna Bridge 142:4eea097334d6 68 /** 32 cycles */
Anna Bridge 142:4eea097334d6 69 vcmpWarmTime32Cycles = _VCMP_CTRL_WARMTIME_32CYCLES,
Anna Bridge 142:4eea097334d6 70 /** 64 cycles */
Anna Bridge 142:4eea097334d6 71 vcmpWarmTime64Cycles = _VCMP_CTRL_WARMTIME_64CYCLES,
Anna Bridge 142:4eea097334d6 72 /** 128 cycles */
Anna Bridge 142:4eea097334d6 73 vcmpWarmTime128Cycles = _VCMP_CTRL_WARMTIME_128CYCLES,
Anna Bridge 142:4eea097334d6 74 /** 256 cycles */
Anna Bridge 142:4eea097334d6 75 vcmpWarmTime256Cycles = _VCMP_CTRL_WARMTIME_256CYCLES,
Anna Bridge 142:4eea097334d6 76 /** 512 cycles */
Anna Bridge 142:4eea097334d6 77 vcmpWarmTime512Cycles = _VCMP_CTRL_WARMTIME_512CYCLES
Anna Bridge 142:4eea097334d6 78 } VCMP_WarmTime_TypeDef;
Anna Bridge 142:4eea097334d6 79
Anna Bridge 142:4eea097334d6 80 /** Hyseresis configuration */
Anna Bridge 160:5571c4ff569f 81 typedef enum {
Anna Bridge 142:4eea097334d6 82 /** Normal operation, no hysteresis */
Anna Bridge 142:4eea097334d6 83 vcmpHystNone,
Anna Bridge 142:4eea097334d6 84 /** Digital output will not toggle until positive edge is at least
Anna Bridge 142:4eea097334d6 85 * 20mV above or below negative input voltage */
Anna Bridge 142:4eea097334d6 86 vcmpHyst20mV
Anna Bridge 142:4eea097334d6 87 } VCMP_Hysteresis_TypeDef;
Anna Bridge 142:4eea097334d6 88
Anna Bridge 142:4eea097334d6 89 /*******************************************************************************
Anna Bridge 142:4eea097334d6 90 ******************************* STRUCTS ***********************************
Anna Bridge 142:4eea097334d6 91 ******************************************************************************/
Anna Bridge 142:4eea097334d6 92
Anna Bridge 142:4eea097334d6 93 /** VCMP Initialization structure */
Anna Bridge 160:5571c4ff569f 94 typedef struct {
Anna Bridge 142:4eea097334d6 95 /** If set to true, will reduce by half the bias current */
Anna Bridge 142:4eea097334d6 96 bool halfBias;
Anna Bridge 142:4eea097334d6 97 /** BIAS current configuration, depends on halfBias setting,
Anna Bridge 142:4eea097334d6 98 * above, see reference manual */
Anna Bridge 142:4eea097334d6 99 int biasProg;
Anna Bridge 142:4eea097334d6 100 /** Enable interrupt for falling edge */
Anna Bridge 142:4eea097334d6 101 bool irqFalling;
Anna Bridge 142:4eea097334d6 102 /** Enable interrupt for rising edge */
Anna Bridge 142:4eea097334d6 103 bool irqRising;
Anna Bridge 142:4eea097334d6 104 /** Warm-up time in clock cycles */
Anna Bridge 142:4eea097334d6 105 VCMP_WarmTime_TypeDef warmup;
Anna Bridge 142:4eea097334d6 106 /** Hysteresis configuration */
Anna Bridge 142:4eea097334d6 107 VCMP_Hysteresis_TypeDef hyst;
Anna Bridge 142:4eea097334d6 108 /** Output value when comparator is inactive, should be 0 or 1 */
Anna Bridge 142:4eea097334d6 109 int inactive;
Anna Bridge 142:4eea097334d6 110 /** Enable low power mode for VDD and bandgap reference */
Anna Bridge 142:4eea097334d6 111 bool lowPowerRef;
Anna Bridge 142:4eea097334d6 112 /** Trigger level, according to formula
Anna Bridge 142:4eea097334d6 113 * VDD Trigger Level = 1.667V + 0.034V x triggerLevel */
Anna Bridge 142:4eea097334d6 114 int triggerLevel;
Anna Bridge 142:4eea097334d6 115 /** Enable VCMP after configuration */
Anna Bridge 142:4eea097334d6 116 bool enable;
Anna Bridge 142:4eea097334d6 117 } VCMP_Init_TypeDef;
Anna Bridge 142:4eea097334d6 118
Anna Bridge 142:4eea097334d6 119 /** Default VCMP initialization structure */
Anna Bridge 142:4eea097334d6 120 #define VCMP_INIT_DEFAULT \
Anna Bridge 160:5571c4ff569f 121 { \
Anna Bridge 160:5571c4ff569f 122 true, /** Half Bias enabled */ \
Anna Bridge 160:5571c4ff569f 123 0x7, /** Bias curernt 0.7 uA when half bias enabled */ \
Anna Bridge 160:5571c4ff569f 124 false, /** Falling edge sense not enabled */ \
Anna Bridge 160:5571c4ff569f 125 false, /** Rising edge sense not enabled */ \
Anna Bridge 160:5571c4ff569f 126 vcmpWarmTime4Cycles, /** 4 clock cycles warm-up time */ \
Anna Bridge 160:5571c4ff569f 127 vcmpHystNone, /** No hysteresis */ \
Anna Bridge 160:5571c4ff569f 128 0, /** 0 in digital ouput when inactive */ \
Anna Bridge 160:5571c4ff569f 129 true, /** Do not use low power reference */ \
Anna Bridge 160:5571c4ff569f 130 39, /** Trigger level just below 3V */ \
Anna Bridge 160:5571c4ff569f 131 true, /** Enable after init */ \
Anna Bridge 160:5571c4ff569f 132 }
Anna Bridge 142:4eea097334d6 133
Anna Bridge 142:4eea097334d6 134 /*******************************************************************************
Anna Bridge 142:4eea097334d6 135 ***************************** PROTOTYPES **********************************
Anna Bridge 142:4eea097334d6 136 ******************************************************************************/
Anna Bridge 142:4eea097334d6 137
Anna Bridge 142:4eea097334d6 138 void VCMP_Init(const VCMP_Init_TypeDef *vcmpInit);
Anna Bridge 142:4eea097334d6 139 void VCMP_LowPowerRefSet(bool enable);
Anna Bridge 142:4eea097334d6 140 void VCMP_TriggerSet(int level);
Anna Bridge 142:4eea097334d6 141
Anna Bridge 142:4eea097334d6 142 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 143 * @brief
Anna Bridge 142:4eea097334d6 144 * Enable Voltage Comparator
Anna Bridge 142:4eea097334d6 145 ******************************************************************************/
Anna Bridge 142:4eea097334d6 146 __STATIC_INLINE void VCMP_Enable(void)
Anna Bridge 142:4eea097334d6 147 {
Anna Bridge 142:4eea097334d6 148 VCMP->CTRL |= VCMP_CTRL_EN;
Anna Bridge 142:4eea097334d6 149 }
Anna Bridge 142:4eea097334d6 150
Anna Bridge 142:4eea097334d6 151 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 152 * @brief
Anna Bridge 142:4eea097334d6 153 * Disable Voltage Comparator
Anna Bridge 142:4eea097334d6 154 ******************************************************************************/
Anna Bridge 142:4eea097334d6 155 __STATIC_INLINE void VCMP_Disable(void)
Anna Bridge 142:4eea097334d6 156 {
Anna Bridge 142:4eea097334d6 157 VCMP->CTRL &= ~VCMP_CTRL_EN;
Anna Bridge 142:4eea097334d6 158 }
Anna Bridge 142:4eea097334d6 159
Anna Bridge 142:4eea097334d6 160 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 161 * @brief
Anna Bridge 142:4eea097334d6 162 * Calculate voltage to trigger level
Anna Bridge 142:4eea097334d6 163 *
Anna Bridge 142:4eea097334d6 164 * @note
Anna Bridge 142:4eea097334d6 165 * You need soft float support for this function to be working
Anna Bridge 142:4eea097334d6 166 *
Anna Bridge 142:4eea097334d6 167 * @param[in] v
Anna Bridge 142:4eea097334d6 168 * Voltage Level for trigger
Anna Bridge 142:4eea097334d6 169 ******************************************************************************/
Anna Bridge 142:4eea097334d6 170 __STATIC_INLINE uint32_t VCMP_VoltageToLevel(float v)
Anna Bridge 142:4eea097334d6 171 {
Anna Bridge 142:4eea097334d6 172 return (uint32_t)((v - (float)1.667) / (float)0.034);
Anna Bridge 142:4eea097334d6 173 }
Anna Bridge 142:4eea097334d6 174
Anna Bridge 142:4eea097334d6 175 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 176 * @brief
Anna Bridge 142:4eea097334d6 177 * Returns true, if Voltage Comparator indicated VDD < trigger level, else
Anna Bridge 142:4eea097334d6 178 * false
Anna Bridge 142:4eea097334d6 179 ******************************************************************************/
Anna Bridge 142:4eea097334d6 180 __STATIC_INLINE bool VCMP_VDDLower(void)
Anna Bridge 142:4eea097334d6 181 {
Anna Bridge 160:5571c4ff569f 182 if (VCMP->STATUS & VCMP_STATUS_VCMPOUT) {
Anna Bridge 142:4eea097334d6 183 return false;
Anna Bridge 160:5571c4ff569f 184 } else {
Anna Bridge 142:4eea097334d6 185 return true;
Anna Bridge 142:4eea097334d6 186 }
Anna Bridge 142:4eea097334d6 187 }
Anna Bridge 142:4eea097334d6 188
Anna Bridge 142:4eea097334d6 189 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 190 * @brief
Anna Bridge 142:4eea097334d6 191 * Returns true, if Voltage Comparator indicated VDD > trigger level, else
Anna Bridge 142:4eea097334d6 192 * false
Anna Bridge 142:4eea097334d6 193 ******************************************************************************/
Anna Bridge 142:4eea097334d6 194 __STATIC_INLINE bool VCMP_VDDHigher(void)
Anna Bridge 142:4eea097334d6 195 {
Anna Bridge 160:5571c4ff569f 196 if (VCMP->STATUS & VCMP_STATUS_VCMPOUT) {
Anna Bridge 142:4eea097334d6 197 return true;
Anna Bridge 160:5571c4ff569f 198 } else {
Anna Bridge 142:4eea097334d6 199 return false;
Anna Bridge 142:4eea097334d6 200 }
Anna Bridge 142:4eea097334d6 201 }
Anna Bridge 142:4eea097334d6 202
Anna Bridge 142:4eea097334d6 203 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 204 * @brief
Anna Bridge 142:4eea097334d6 205 * VCMP output is ready
Anna Bridge 142:4eea097334d6 206 ******************************************************************************/
Anna Bridge 142:4eea097334d6 207 __STATIC_INLINE bool VCMP_Ready(void)
Anna Bridge 142:4eea097334d6 208 {
Anna Bridge 160:5571c4ff569f 209 if (VCMP->STATUS & VCMP_STATUS_VCMPACT) {
Anna Bridge 142:4eea097334d6 210 return true;
Anna Bridge 160:5571c4ff569f 211 } else {
Anna Bridge 142:4eea097334d6 212 return false;
Anna Bridge 142:4eea097334d6 213 }
Anna Bridge 142:4eea097334d6 214 }
Anna Bridge 142:4eea097334d6 215
Anna Bridge 142:4eea097334d6 216 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 217 * @brief
Anna Bridge 142:4eea097334d6 218 * Clear one or more pending VCMP interrupts.
Anna Bridge 142:4eea097334d6 219 *
Anna Bridge 142:4eea097334d6 220 * @param[in] flags
Anna Bridge 142:4eea097334d6 221 * VCMP interrupt sources to clear. Use a set of interrupt flags OR-ed
Anna Bridge 142:4eea097334d6 222 * together to clear multiple interrupt sources for the VCMP module
Anna Bridge 142:4eea097334d6 223 * (VCMP_IFS_nnn).
Anna Bridge 142:4eea097334d6 224 ******************************************************************************/
Anna Bridge 142:4eea097334d6 225 __STATIC_INLINE void VCMP_IntClear(uint32_t flags)
Anna Bridge 142:4eea097334d6 226 {
Anna Bridge 142:4eea097334d6 227 VCMP->IFC = flags;
Anna Bridge 142:4eea097334d6 228 }
Anna Bridge 142:4eea097334d6 229
Anna Bridge 142:4eea097334d6 230 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 231 * @brief
Anna Bridge 142:4eea097334d6 232 * Set one or more pending VCMP interrupts from SW.
Anna Bridge 142:4eea097334d6 233 *
Anna Bridge 142:4eea097334d6 234 * @param[in] flags
Anna Bridge 142:4eea097334d6 235 * VCMP interrupt sources to set to pending. Use a set of interrupt flags
Anna Bridge 142:4eea097334d6 236 * OR-ed together to set multiple interrupt sources for the VCMP module
Anna Bridge 142:4eea097334d6 237 * (VCMP_IFS_nnn).
Anna Bridge 142:4eea097334d6 238 ******************************************************************************/
Anna Bridge 142:4eea097334d6 239 __STATIC_INLINE void VCMP_IntSet(uint32_t flags)
Anna Bridge 142:4eea097334d6 240 {
Anna Bridge 142:4eea097334d6 241 VCMP->IFS = flags;
Anna Bridge 142:4eea097334d6 242 }
Anna Bridge 142:4eea097334d6 243
Anna Bridge 142:4eea097334d6 244 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 245 * @brief
Anna Bridge 142:4eea097334d6 246 * Disable one or more VCMP interrupts
Anna Bridge 142:4eea097334d6 247 *
Anna Bridge 142:4eea097334d6 248 * @param[in] flags
Anna Bridge 142:4eea097334d6 249 * VCMP interrupt sources to enable. Use a set of interrupt flags OR-ed
Anna Bridge 142:4eea097334d6 250 * together to set multiple interrupt sources for the VCMP module
Anna Bridge 142:4eea097334d6 251 * (VCMP_IFS_nnn).
Anna Bridge 142:4eea097334d6 252 ******************************************************************************/
Anna Bridge 142:4eea097334d6 253 __STATIC_INLINE void VCMP_IntDisable(uint32_t flags)
Anna Bridge 142:4eea097334d6 254 {
Anna Bridge 142:4eea097334d6 255 VCMP->IEN &= ~flags;
Anna Bridge 142:4eea097334d6 256 }
Anna Bridge 142:4eea097334d6 257
Anna Bridge 142:4eea097334d6 258 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 259 * @brief
Anna Bridge 142:4eea097334d6 260 * Enable one or more VCMP interrupts
Anna Bridge 142:4eea097334d6 261 *
Anna Bridge 142:4eea097334d6 262 * @param[in] flags
Anna Bridge 142:4eea097334d6 263 * VCMP interrupt sources to enable. Use a set of interrupt flags OR-ed
Anna Bridge 142:4eea097334d6 264 * together to set multiple interrupt sources for the VCMP module
Anna Bridge 142:4eea097334d6 265 * (VCMP_IFS_nnn).
Anna Bridge 142:4eea097334d6 266 ******************************************************************************/
Anna Bridge 142:4eea097334d6 267 __STATIC_INLINE void VCMP_IntEnable(uint32_t flags)
Anna Bridge 142:4eea097334d6 268 {
Anna Bridge 142:4eea097334d6 269 VCMP->IEN |= flags;
Anna Bridge 142:4eea097334d6 270 }
Anna Bridge 142:4eea097334d6 271
Anna Bridge 142:4eea097334d6 272 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 273 * @brief
Anna Bridge 142:4eea097334d6 274 * Get pending VCMP interrupt flags
Anna Bridge 142:4eea097334d6 275 *
Anna Bridge 142:4eea097334d6 276 * @note
Anna Bridge 142:4eea097334d6 277 * The event bits are not cleared by the use of this function
Anna Bridge 142:4eea097334d6 278 *
Anna Bridge 142:4eea097334d6 279 * @return
Anna Bridge 142:4eea097334d6 280 * Pending VCMP interrupt sources. Returns a set of interrupt flags OR-ed
Anna Bridge 142:4eea097334d6 281 * together for multiple interrupt sources in the VCMP module (VCMP_IFS_nnn).
Anna Bridge 142:4eea097334d6 282 ******************************************************************************/
Anna Bridge 142:4eea097334d6 283 __STATIC_INLINE uint32_t VCMP_IntGet(void)
Anna Bridge 142:4eea097334d6 284 {
Anna Bridge 142:4eea097334d6 285 return VCMP->IF;
Anna Bridge 142:4eea097334d6 286 }
Anna Bridge 142:4eea097334d6 287
Anna Bridge 142:4eea097334d6 288 /***************************************************************************//**
Anna Bridge 142:4eea097334d6 289 * @brief
Anna Bridge 142:4eea097334d6 290 * Get enabled and pending VCMP interrupt flags.
Anna Bridge 142:4eea097334d6 291 *
Anna Bridge 142:4eea097334d6 292 * @details
Anna Bridge 142:4eea097334d6 293 * Useful for handling more interrupt sources in the same interrupt handler.
Anna Bridge 142:4eea097334d6 294 *
Anna Bridge 142:4eea097334d6 295 * @note
Anna Bridge 142:4eea097334d6 296 * The event bits are not cleared by the use of this function.
Anna Bridge 142:4eea097334d6 297 *
Anna Bridge 142:4eea097334d6 298 * @return
Anna Bridge 142:4eea097334d6 299 * Pending and enabled VCMP interrupt sources.
Anna Bridge 142:4eea097334d6 300 * The return value is the bitwise AND combination of
Anna Bridge 142:4eea097334d6 301 * - the OR combination of enabled interrupt sources in VCMP_IEN_nnn
Anna Bridge 142:4eea097334d6 302 * register (VCMP_IEN_nnn) and
Anna Bridge 142:4eea097334d6 303 * - the OR combination of valid interrupt flags of the VCMP module
Anna Bridge 142:4eea097334d6 304 * (VCMP_IF_nnn).
Anna Bridge 142:4eea097334d6 305 ******************************************************************************/
Anna Bridge 142:4eea097334d6 306 __STATIC_INLINE uint32_t VCMP_IntGetEnabled(void)
Anna Bridge 142:4eea097334d6 307 {
Anna Bridge 142:4eea097334d6 308 uint32_t tmp = 0U;
Anna Bridge 142:4eea097334d6 309
Anna Bridge 142:4eea097334d6 310 /* Store VCMP->IEN in temporary variable in order to define explicit order
Anna Bridge 142:4eea097334d6 311 * of volatile accesses. */
Anna Bridge 142:4eea097334d6 312 tmp = VCMP->IEN;
Anna Bridge 142:4eea097334d6 313
Anna Bridge 142:4eea097334d6 314 /* Bitwise AND of pending and enabled interrupts */
Anna Bridge 142:4eea097334d6 315 return VCMP->IF & tmp;
Anna Bridge 142:4eea097334d6 316 }
Anna Bridge 142:4eea097334d6 317
Anna Bridge 142:4eea097334d6 318 /** @} (end addtogroup VCMP) */
Anna Bridge 142:4eea097334d6 319 /** @} (end addtogroup emlib) */
Anna Bridge 142:4eea097334d6 320
Anna Bridge 142:4eea097334d6 321 #ifdef __cplusplus
Anna Bridge 142:4eea097334d6 322 }
Anna Bridge 142:4eea097334d6 323 #endif
Anna Bridge 142:4eea097334d6 324
Anna Bridge 142:4eea097334d6 325 #endif /* defined(VCMP_COUNT) && (VCMP_COUNT > 0) */
Anna Bridge 142:4eea097334d6 326 #endif /* EM_VCMP_H */