mbed library sources. Supersedes mbed-src.
Fork of mbed-dev by
targets/hal/TARGET_Atmel/TARGET_SAM_CortexM0P/drivers/adc/TARGET_SAMD21/adc_feature.h@18:da299f395b9e, 2015-11-09 (annotated)
- Committer:
- mbed_official
- Date:
- Mon Nov 09 13:30:11 2015 +0000
- Revision:
- 18:da299f395b9e
- Parent:
- targets/hal/TARGET_Atmel/TARGET_SAM_CortexM0P/drivers/adc/adc_sam_d_r/adc_feature.h@15:a81a8d6c1dfe
Synchronized with git revision f605825f66bb2e462ff7dbc5fb4ed2dbe979d1c3
Full URL: https://github.com/mbedmicro/mbed/commit/f605825f66bb2e462ff7dbc5fb4ed2dbe979d1c3/
Added support for SAML21
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mbed_official | 15:a81a8d6c1dfe | 1 | /** |
mbed_official | 15:a81a8d6c1dfe | 2 | * \file |
mbed_official | 15:a81a8d6c1dfe | 3 | * |
mbed_official | 15:a81a8d6c1dfe | 4 | * \brief SAM ADC functionality |
mbed_official | 15:a81a8d6c1dfe | 5 | * |
mbed_official | 15:a81a8d6c1dfe | 6 | * Copyright (C) 2014-2015 Atmel Corporation. All rights reserved. |
mbed_official | 15:a81a8d6c1dfe | 7 | * |
mbed_official | 15:a81a8d6c1dfe | 8 | * \asf_license_start |
mbed_official | 15:a81a8d6c1dfe | 9 | * |
mbed_official | 15:a81a8d6c1dfe | 10 | * \page License |
mbed_official | 15:a81a8d6c1dfe | 11 | * |
mbed_official | 15:a81a8d6c1dfe | 12 | * Redistribution and use in source and binary forms, with or without |
mbed_official | 15:a81a8d6c1dfe | 13 | * modification, are permitted provided that the following conditions are met: |
mbed_official | 15:a81a8d6c1dfe | 14 | * |
mbed_official | 15:a81a8d6c1dfe | 15 | * 1. Redistributions of source code must retain the above copyright notice, |
mbed_official | 15:a81a8d6c1dfe | 16 | * this list of conditions and the following disclaimer. |
mbed_official | 15:a81a8d6c1dfe | 17 | * |
mbed_official | 15:a81a8d6c1dfe | 18 | * 2. Redistributions in binary form must reproduce the above copyright notice, |
mbed_official | 15:a81a8d6c1dfe | 19 | * this list of conditions and the following disclaimer in the documentation |
mbed_official | 15:a81a8d6c1dfe | 20 | * and/or other materials provided with the distribution. |
mbed_official | 15:a81a8d6c1dfe | 21 | * |
mbed_official | 15:a81a8d6c1dfe | 22 | * 3. The name of Atmel may not be used to endorse or promote products derived |
mbed_official | 15:a81a8d6c1dfe | 23 | * from this software without specific prior written permission. |
mbed_official | 15:a81a8d6c1dfe | 24 | * |
mbed_official | 15:a81a8d6c1dfe | 25 | * 4. This software may only be redistributed and used in connection with an |
mbed_official | 15:a81a8d6c1dfe | 26 | * Atmel microcontroller product. |
mbed_official | 15:a81a8d6c1dfe | 27 | * |
mbed_official | 15:a81a8d6c1dfe | 28 | * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED |
mbed_official | 15:a81a8d6c1dfe | 29 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
mbed_official | 15:a81a8d6c1dfe | 30 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE |
mbed_official | 15:a81a8d6c1dfe | 31 | * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR |
mbed_official | 15:a81a8d6c1dfe | 32 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
mbed_official | 15:a81a8d6c1dfe | 33 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
mbed_official | 15:a81a8d6c1dfe | 34 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
mbed_official | 15:a81a8d6c1dfe | 35 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |
mbed_official | 15:a81a8d6c1dfe | 36 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN |
mbed_official | 15:a81a8d6c1dfe | 37 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
mbed_official | 15:a81a8d6c1dfe | 38 | * POSSIBILITY OF SUCH DAMAGE. |
mbed_official | 15:a81a8d6c1dfe | 39 | * |
mbed_official | 15:a81a8d6c1dfe | 40 | * \asf_license_stop |
mbed_official | 15:a81a8d6c1dfe | 41 | * |
mbed_official | 15:a81a8d6c1dfe | 42 | */ |
mbed_official | 15:a81a8d6c1dfe | 43 | /* |
mbed_official | 15:a81a8d6c1dfe | 44 | * Support and FAQ: visit <a href="http://www.atmel.com/design-support/">Atmel Support</a> |
mbed_official | 15:a81a8d6c1dfe | 45 | */ |
mbed_official | 15:a81a8d6c1dfe | 46 | #ifndef ADC_FEATURE_H_INCLUDED |
mbed_official | 15:a81a8d6c1dfe | 47 | #define ADC_FEATURE_H_INCLUDED |
mbed_official | 15:a81a8d6c1dfe | 48 | |
mbed_official | 15:a81a8d6c1dfe | 49 | /** |
mbed_official | 15:a81a8d6c1dfe | 50 | * \addtogroup asfdoc_sam0_adc_group |
mbed_official | 15:a81a8d6c1dfe | 51 | * @{ |
mbed_official | 15:a81a8d6c1dfe | 52 | */ |
mbed_official | 15:a81a8d6c1dfe | 53 | |
mbed_official | 15:a81a8d6c1dfe | 54 | #ifdef __cplusplus |
mbed_official | 15:a81a8d6c1dfe | 55 | extern "C" { |
mbed_official | 15:a81a8d6c1dfe | 56 | #endif |
mbed_official | 15:a81a8d6c1dfe | 57 | |
mbed_official | 15:a81a8d6c1dfe | 58 | #if ADC_CALLBACK_MODE == true |
mbed_official | 15:a81a8d6c1dfe | 59 | # include <system_interrupt.h> |
mbed_official | 15:a81a8d6c1dfe | 60 | |
mbed_official | 15:a81a8d6c1dfe | 61 | #if !defined(__DOXYGEN__) |
mbed_official | 15:a81a8d6c1dfe | 62 | extern struct adc_module *_adc_instances[ADC_INST_NUM]; |
mbed_official | 15:a81a8d6c1dfe | 63 | #endif |
mbed_official | 15:a81a8d6c1dfe | 64 | |
mbed_official | 15:a81a8d6c1dfe | 65 | /** Forward definition of the device instance. */ |
mbed_official | 15:a81a8d6c1dfe | 66 | struct adc_module; |
mbed_official | 15:a81a8d6c1dfe | 67 | |
mbed_official | 15:a81a8d6c1dfe | 68 | /** Type of the callback functions. */ |
mbed_official | 15:a81a8d6c1dfe | 69 | typedef void (*adc_callback_t)(struct adc_module *const module); |
mbed_official | 15:a81a8d6c1dfe | 70 | |
mbed_official | 15:a81a8d6c1dfe | 71 | /** |
mbed_official | 15:a81a8d6c1dfe | 72 | * \brief ADC Callback enum |
mbed_official | 15:a81a8d6c1dfe | 73 | * |
mbed_official | 15:a81a8d6c1dfe | 74 | * Callback types for ADC callback driver. |
mbed_official | 15:a81a8d6c1dfe | 75 | * |
mbed_official | 15:a81a8d6c1dfe | 76 | */ |
mbed_official | 15:a81a8d6c1dfe | 77 | enum adc_callback { |
mbed_official | 15:a81a8d6c1dfe | 78 | /** Callback for buffer received. */ |
mbed_official | 15:a81a8d6c1dfe | 79 | ADC_CALLBACK_READ_BUFFER, |
mbed_official | 15:a81a8d6c1dfe | 80 | /** Callback when window is hit. */ |
mbed_official | 15:a81a8d6c1dfe | 81 | ADC_CALLBACK_WINDOW, |
mbed_official | 15:a81a8d6c1dfe | 82 | /** Callback for error. */ |
mbed_official | 15:a81a8d6c1dfe | 83 | ADC_CALLBACK_ERROR, |
mbed_official | 15:a81a8d6c1dfe | 84 | # if !defined(__DOXYGEN__) |
mbed_official | 15:a81a8d6c1dfe | 85 | /** Number of available callbacks. */ |
mbed_official | 15:a81a8d6c1dfe | 86 | ADC_CALLBACK_N, |
mbed_official | 15:a81a8d6c1dfe | 87 | # endif |
mbed_official | 15:a81a8d6c1dfe | 88 | }; |
mbed_official | 15:a81a8d6c1dfe | 89 | |
mbed_official | 15:a81a8d6c1dfe | 90 | #endif |
mbed_official | 15:a81a8d6c1dfe | 91 | |
mbed_official | 15:a81a8d6c1dfe | 92 | /** |
mbed_official | 15:a81a8d6c1dfe | 93 | * \brief ADC reference voltage enum |
mbed_official | 15:a81a8d6c1dfe | 94 | * |
mbed_official | 15:a81a8d6c1dfe | 95 | * Enum for the possible reference voltages for the ADC. |
mbed_official | 15:a81a8d6c1dfe | 96 | * |
mbed_official | 15:a81a8d6c1dfe | 97 | */ |
mbed_official | 15:a81a8d6c1dfe | 98 | enum adc_reference { |
mbed_official | 15:a81a8d6c1dfe | 99 | /** 1.0V voltage reference. */ |
mbed_official | 15:a81a8d6c1dfe | 100 | ADC_REFERENCE_INT1V = ADC_REFCTRL_REFSEL_INT1V, |
mbed_official | 15:a81a8d6c1dfe | 101 | /** 1/1.48V<SUB>CC</SUB> reference. */ |
mbed_official | 15:a81a8d6c1dfe | 102 | ADC_REFERENCE_INTVCC0 = ADC_REFCTRL_REFSEL_INTVCC0, |
mbed_official | 15:a81a8d6c1dfe | 103 | /** 1/2V<SUB>CC</SUB> (only for internal V<SUB>CC</SUB> > 2.1V). */ |
mbed_official | 15:a81a8d6c1dfe | 104 | ADC_REFERENCE_INTVCC1 = ADC_REFCTRL_REFSEL_INTVCC1, |
mbed_official | 15:a81a8d6c1dfe | 105 | /** External reference A. */ |
mbed_official | 15:a81a8d6c1dfe | 106 | ADC_REFERENCE_AREFA = ADC_REFCTRL_REFSEL_AREFA, |
mbed_official | 15:a81a8d6c1dfe | 107 | /** External reference B. */ |
mbed_official | 15:a81a8d6c1dfe | 108 | ADC_REFERENCE_AREFB = ADC_REFCTRL_REFSEL_AREFB, |
mbed_official | 15:a81a8d6c1dfe | 109 | }; |
mbed_official | 15:a81a8d6c1dfe | 110 | |
mbed_official | 15:a81a8d6c1dfe | 111 | /** |
mbed_official | 15:a81a8d6c1dfe | 112 | * \brief ADC clock prescaler enum |
mbed_official | 15:a81a8d6c1dfe | 113 | * |
mbed_official | 15:a81a8d6c1dfe | 114 | * Enum for the possible clock prescaler values for the ADC. |
mbed_official | 15:a81a8d6c1dfe | 115 | * |
mbed_official | 15:a81a8d6c1dfe | 116 | */ |
mbed_official | 15:a81a8d6c1dfe | 117 | enum adc_clock_prescaler { |
mbed_official | 15:a81a8d6c1dfe | 118 | /** ADC clock division factor 4. */ |
mbed_official | 15:a81a8d6c1dfe | 119 | ADC_CLOCK_PRESCALER_DIV4 = ADC_CTRLB_PRESCALER_DIV4, |
mbed_official | 15:a81a8d6c1dfe | 120 | /** ADC clock division factor 8. */ |
mbed_official | 15:a81a8d6c1dfe | 121 | ADC_CLOCK_PRESCALER_DIV8 = ADC_CTRLB_PRESCALER_DIV8, |
mbed_official | 15:a81a8d6c1dfe | 122 | /** ADC clock division factor 16. */ |
mbed_official | 15:a81a8d6c1dfe | 123 | ADC_CLOCK_PRESCALER_DIV16 = ADC_CTRLB_PRESCALER_DIV16, |
mbed_official | 15:a81a8d6c1dfe | 124 | /** ADC clock division factor 32. */ |
mbed_official | 15:a81a8d6c1dfe | 125 | ADC_CLOCK_PRESCALER_DIV32 = ADC_CTRLB_PRESCALER_DIV32, |
mbed_official | 15:a81a8d6c1dfe | 126 | /** ADC clock division factor 64. */ |
mbed_official | 15:a81a8d6c1dfe | 127 | ADC_CLOCK_PRESCALER_DIV64 = ADC_CTRLB_PRESCALER_DIV64, |
mbed_official | 15:a81a8d6c1dfe | 128 | /** ADC clock division factor 128. */ |
mbed_official | 15:a81a8d6c1dfe | 129 | ADC_CLOCK_PRESCALER_DIV128 = ADC_CTRLB_PRESCALER_DIV128, |
mbed_official | 15:a81a8d6c1dfe | 130 | /** ADC clock division factor 256. */ |
mbed_official | 15:a81a8d6c1dfe | 131 | ADC_CLOCK_PRESCALER_DIV256 = ADC_CTRLB_PRESCALER_DIV256, |
mbed_official | 15:a81a8d6c1dfe | 132 | /** ADC clock division factor 512. */ |
mbed_official | 15:a81a8d6c1dfe | 133 | ADC_CLOCK_PRESCALER_DIV512 = ADC_CTRLB_PRESCALER_DIV512, |
mbed_official | 15:a81a8d6c1dfe | 134 | }; |
mbed_official | 15:a81a8d6c1dfe | 135 | |
mbed_official | 15:a81a8d6c1dfe | 136 | /** |
mbed_official | 15:a81a8d6c1dfe | 137 | * \brief ADC resolution enum |
mbed_official | 15:a81a8d6c1dfe | 138 | * |
mbed_official | 15:a81a8d6c1dfe | 139 | * Enum for the possible resolution values for the ADC. |
mbed_official | 15:a81a8d6c1dfe | 140 | * |
mbed_official | 15:a81a8d6c1dfe | 141 | */ |
mbed_official | 15:a81a8d6c1dfe | 142 | enum adc_resolution { |
mbed_official | 15:a81a8d6c1dfe | 143 | /** ADC 12-bit resolution. */ |
mbed_official | 15:a81a8d6c1dfe | 144 | ADC_RESOLUTION_12BIT = ADC_CTRLB_RESSEL_12BIT, |
mbed_official | 15:a81a8d6c1dfe | 145 | /** ADC 16-bit resolution using oversampling and decimation. */ |
mbed_official | 15:a81a8d6c1dfe | 146 | ADC_RESOLUTION_16BIT = ADC_CTRLB_RESSEL_16BIT, |
mbed_official | 15:a81a8d6c1dfe | 147 | /** ADC 10-bit resolution. */ |
mbed_official | 15:a81a8d6c1dfe | 148 | ADC_RESOLUTION_10BIT = ADC_CTRLB_RESSEL_10BIT, |
mbed_official | 15:a81a8d6c1dfe | 149 | /** ADC 8-bit resolution. */ |
mbed_official | 15:a81a8d6c1dfe | 150 | ADC_RESOLUTION_8BIT = ADC_CTRLB_RESSEL_8BIT, |
mbed_official | 15:a81a8d6c1dfe | 151 | /** ADC 13-bit resolution using oversampling and decimation. */ |
mbed_official | 15:a81a8d6c1dfe | 152 | ADC_RESOLUTION_13BIT, |
mbed_official | 15:a81a8d6c1dfe | 153 | /** ADC 14-bit resolution using oversampling and decimation. */ |
mbed_official | 15:a81a8d6c1dfe | 154 | ADC_RESOLUTION_14BIT, |
mbed_official | 15:a81a8d6c1dfe | 155 | /** ADC 15-bit resolution using oversampling and decimation. */ |
mbed_official | 15:a81a8d6c1dfe | 156 | ADC_RESOLUTION_15BIT, |
mbed_official | 15:a81a8d6c1dfe | 157 | /** ADC 16-bit result register for use with averaging. When using this mode |
mbed_official | 15:a81a8d6c1dfe | 158 | * the ADC result register will be set to 16-bit wide, and the number of |
mbed_official | 15:a81a8d6c1dfe | 159 | * samples to accumulate and the division factor is configured by the |
mbed_official | 15:a81a8d6c1dfe | 160 | * \ref adc_config.accumulate_samples and \ref adc_config.divide_result |
mbed_official | 15:a81a8d6c1dfe | 161 | * members in the configuration struct. |
mbed_official | 15:a81a8d6c1dfe | 162 | */ |
mbed_official | 15:a81a8d6c1dfe | 163 | ADC_RESOLUTION_CUSTOM, |
mbed_official | 15:a81a8d6c1dfe | 164 | }; |
mbed_official | 15:a81a8d6c1dfe | 165 | |
mbed_official | 15:a81a8d6c1dfe | 166 | /** |
mbed_official | 15:a81a8d6c1dfe | 167 | * \brief ADC window monitor mode enum |
mbed_official | 15:a81a8d6c1dfe | 168 | * |
mbed_official | 15:a81a8d6c1dfe | 169 | * Enum for the possible window monitor modes for the ADC. |
mbed_official | 15:a81a8d6c1dfe | 170 | * |
mbed_official | 15:a81a8d6c1dfe | 171 | */ |
mbed_official | 15:a81a8d6c1dfe | 172 | enum adc_window_mode { |
mbed_official | 15:a81a8d6c1dfe | 173 | /** No window mode. */ |
mbed_official | 15:a81a8d6c1dfe | 174 | ADC_WINDOW_MODE_DISABLE = ADC_WINCTRL_WINMODE_DISABLE, |
mbed_official | 15:a81a8d6c1dfe | 175 | /** RESULT > WINLT. */ |
mbed_official | 15:a81a8d6c1dfe | 176 | ADC_WINDOW_MODE_ABOVE_LOWER = ADC_WINCTRL_WINMODE_MODE1, |
mbed_official | 15:a81a8d6c1dfe | 177 | /** RESULT < WINUT. */ |
mbed_official | 15:a81a8d6c1dfe | 178 | ADC_WINDOW_MODE_BELOW_UPPER = ADC_WINCTRL_WINMODE_MODE2, |
mbed_official | 15:a81a8d6c1dfe | 179 | /** WINLT < RESULT < WINUT. */ |
mbed_official | 15:a81a8d6c1dfe | 180 | ADC_WINDOW_MODE_BETWEEN = ADC_WINCTRL_WINMODE_MODE3, |
mbed_official | 15:a81a8d6c1dfe | 181 | /** !(WINLT < RESULT < WINUT). */ |
mbed_official | 15:a81a8d6c1dfe | 182 | ADC_WINDOW_MODE_BETWEEN_INVERTED = ADC_WINCTRL_WINMODE_MODE4, |
mbed_official | 15:a81a8d6c1dfe | 183 | }; |
mbed_official | 15:a81a8d6c1dfe | 184 | |
mbed_official | 15:a81a8d6c1dfe | 185 | /** |
mbed_official | 15:a81a8d6c1dfe | 186 | * \brief ADC gain factor selection enum |
mbed_official | 15:a81a8d6c1dfe | 187 | * |
mbed_official | 15:a81a8d6c1dfe | 188 | * Enum for the possible gain factor values for the ADC. |
mbed_official | 15:a81a8d6c1dfe | 189 | * |
mbed_official | 15:a81a8d6c1dfe | 190 | */ |
mbed_official | 15:a81a8d6c1dfe | 191 | enum adc_gain_factor { |
mbed_official | 15:a81a8d6c1dfe | 192 | /** 1x gain. */ |
mbed_official | 15:a81a8d6c1dfe | 193 | ADC_GAIN_FACTOR_1X = ADC_INPUTCTRL_GAIN_1X, |
mbed_official | 15:a81a8d6c1dfe | 194 | /** 2x gain. */ |
mbed_official | 15:a81a8d6c1dfe | 195 | ADC_GAIN_FACTOR_2X = ADC_INPUTCTRL_GAIN_2X, |
mbed_official | 15:a81a8d6c1dfe | 196 | /** 4x gain. */ |
mbed_official | 15:a81a8d6c1dfe | 197 | ADC_GAIN_FACTOR_4X = ADC_INPUTCTRL_GAIN_4X, |
mbed_official | 15:a81a8d6c1dfe | 198 | /** 8x gain. */ |
mbed_official | 15:a81a8d6c1dfe | 199 | ADC_GAIN_FACTOR_8X = ADC_INPUTCTRL_GAIN_8X, |
mbed_official | 15:a81a8d6c1dfe | 200 | /** 16x gain. */ |
mbed_official | 15:a81a8d6c1dfe | 201 | ADC_GAIN_FACTOR_16X = ADC_INPUTCTRL_GAIN_16X, |
mbed_official | 15:a81a8d6c1dfe | 202 | /** 1/2x gain. */ |
mbed_official | 15:a81a8d6c1dfe | 203 | ADC_GAIN_FACTOR_DIV2 = ADC_INPUTCTRL_GAIN_DIV2, |
mbed_official | 15:a81a8d6c1dfe | 204 | }; |
mbed_official | 15:a81a8d6c1dfe | 205 | |
mbed_official | 15:a81a8d6c1dfe | 206 | /** |
mbed_official | 15:a81a8d6c1dfe | 207 | * \brief ADC event action enum |
mbed_official | 15:a81a8d6c1dfe | 208 | * |
mbed_official | 15:a81a8d6c1dfe | 209 | * Enum for the possible actions to take on an incoming event. |
mbed_official | 15:a81a8d6c1dfe | 210 | * |
mbed_official | 15:a81a8d6c1dfe | 211 | */ |
mbed_official | 15:a81a8d6c1dfe | 212 | enum adc_event_action { |
mbed_official | 15:a81a8d6c1dfe | 213 | /** Event action disabled. */ |
mbed_official | 15:a81a8d6c1dfe | 214 | ADC_EVENT_ACTION_DISABLED = 0, |
mbed_official | 15:a81a8d6c1dfe | 215 | /** Flush ADC and start conversion. */ |
mbed_official | 15:a81a8d6c1dfe | 216 | ADC_EVENT_ACTION_FLUSH_START_CONV = ADC_EVCTRL_SYNCEI, |
mbed_official | 15:a81a8d6c1dfe | 217 | /** Start conversion. */ |
mbed_official | 15:a81a8d6c1dfe | 218 | ADC_EVENT_ACTION_START_CONV = ADC_EVCTRL_STARTEI, |
mbed_official | 15:a81a8d6c1dfe | 219 | }; |
mbed_official | 15:a81a8d6c1dfe | 220 | |
mbed_official | 15:a81a8d6c1dfe | 221 | /** |
mbed_official | 15:a81a8d6c1dfe | 222 | * \brief ADC positive MUX input selection enum |
mbed_official | 15:a81a8d6c1dfe | 223 | * |
mbed_official | 15:a81a8d6c1dfe | 224 | * Enum for the possible positive MUX input selections for the ADC. |
mbed_official | 15:a81a8d6c1dfe | 225 | * |
mbed_official | 15:a81a8d6c1dfe | 226 | */ |
mbed_official | 15:a81a8d6c1dfe | 227 | enum adc_positive_input { |
mbed_official | 15:a81a8d6c1dfe | 228 | /** ADC0 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 229 | ADC_POSITIVE_INPUT_PIN0 = ADC_INPUTCTRL_MUXPOS_PIN0, |
mbed_official | 15:a81a8d6c1dfe | 230 | /** ADC1 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 231 | ADC_POSITIVE_INPUT_PIN1 = ADC_INPUTCTRL_MUXPOS_PIN1, |
mbed_official | 15:a81a8d6c1dfe | 232 | /** ADC2 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 233 | ADC_POSITIVE_INPUT_PIN2 = ADC_INPUTCTRL_MUXPOS_PIN2, |
mbed_official | 15:a81a8d6c1dfe | 234 | /** ADC3 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 235 | ADC_POSITIVE_INPUT_PIN3 = ADC_INPUTCTRL_MUXPOS_PIN3, |
mbed_official | 15:a81a8d6c1dfe | 236 | /** ADC4 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 237 | ADC_POSITIVE_INPUT_PIN4 = ADC_INPUTCTRL_MUXPOS_PIN4, |
mbed_official | 15:a81a8d6c1dfe | 238 | /** ADC5 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 239 | ADC_POSITIVE_INPUT_PIN5 = ADC_INPUTCTRL_MUXPOS_PIN5, |
mbed_official | 15:a81a8d6c1dfe | 240 | /** ADC6 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 241 | ADC_POSITIVE_INPUT_PIN6 = ADC_INPUTCTRL_MUXPOS_PIN6, |
mbed_official | 15:a81a8d6c1dfe | 242 | /** ADC7 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 243 | ADC_POSITIVE_INPUT_PIN7 = ADC_INPUTCTRL_MUXPOS_PIN7, |
mbed_official | 15:a81a8d6c1dfe | 244 | /** ADC8 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 245 | ADC_POSITIVE_INPUT_PIN8 = ADC_INPUTCTRL_MUXPOS_PIN8, |
mbed_official | 15:a81a8d6c1dfe | 246 | /** ADC9 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 247 | ADC_POSITIVE_INPUT_PIN9 = ADC_INPUTCTRL_MUXPOS_PIN9, |
mbed_official | 15:a81a8d6c1dfe | 248 | /** ADC10 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 249 | ADC_POSITIVE_INPUT_PIN10 = ADC_INPUTCTRL_MUXPOS_PIN10, |
mbed_official | 15:a81a8d6c1dfe | 250 | /** ADC11 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 251 | ADC_POSITIVE_INPUT_PIN11 = ADC_INPUTCTRL_MUXPOS_PIN11, |
mbed_official | 15:a81a8d6c1dfe | 252 | /** ADC12 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 253 | ADC_POSITIVE_INPUT_PIN12 = ADC_INPUTCTRL_MUXPOS_PIN12, |
mbed_official | 15:a81a8d6c1dfe | 254 | /** ADC13 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 255 | ADC_POSITIVE_INPUT_PIN13 = ADC_INPUTCTRL_MUXPOS_PIN13, |
mbed_official | 15:a81a8d6c1dfe | 256 | /** ADC14 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 257 | ADC_POSITIVE_INPUT_PIN14 = ADC_INPUTCTRL_MUXPOS_PIN14, |
mbed_official | 15:a81a8d6c1dfe | 258 | /** ADC15 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 259 | ADC_POSITIVE_INPUT_PIN15 = ADC_INPUTCTRL_MUXPOS_PIN15, |
mbed_official | 15:a81a8d6c1dfe | 260 | /** ADC16 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 261 | ADC_POSITIVE_INPUT_PIN16 = ADC_INPUTCTRL_MUXPOS_PIN16, |
mbed_official | 15:a81a8d6c1dfe | 262 | /** ADC17 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 263 | ADC_POSITIVE_INPUT_PIN17 = ADC_INPUTCTRL_MUXPOS_PIN17, |
mbed_official | 15:a81a8d6c1dfe | 264 | /** ADC18 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 265 | ADC_POSITIVE_INPUT_PIN18 = ADC_INPUTCTRL_MUXPOS_PIN18, |
mbed_official | 15:a81a8d6c1dfe | 266 | /** ADC19 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 267 | ADC_POSITIVE_INPUT_PIN19 = ADC_INPUTCTRL_MUXPOS_PIN19, |
mbed_official | 15:a81a8d6c1dfe | 268 | /** Temperature reference. */ |
mbed_official | 15:a81a8d6c1dfe | 269 | ADC_POSITIVE_INPUT_TEMP = ADC_INPUTCTRL_MUXPOS_TEMP, |
mbed_official | 15:a81a8d6c1dfe | 270 | /** Bandgap voltage. */ |
mbed_official | 15:a81a8d6c1dfe | 271 | ADC_POSITIVE_INPUT_BANDGAP = ADC_INPUTCTRL_MUXPOS_BANDGAP, |
mbed_official | 15:a81a8d6c1dfe | 272 | /** 1/4 scaled core supply. */ |
mbed_official | 15:a81a8d6c1dfe | 273 | ADC_POSITIVE_INPUT_SCALEDCOREVCC = ADC_INPUTCTRL_MUXPOS_SCALEDCOREVCC, |
mbed_official | 15:a81a8d6c1dfe | 274 | /** 1/4 scaled I/O supply. */ |
mbed_official | 15:a81a8d6c1dfe | 275 | ADC_POSITIVE_INPUT_SCALEDIOVCC = ADC_INPUTCTRL_MUXPOS_SCALEDIOVCC, |
mbed_official | 15:a81a8d6c1dfe | 276 | /** DAC input. */ |
mbed_official | 15:a81a8d6c1dfe | 277 | ADC_POSITIVE_INPUT_DAC = ADC_INPUTCTRL_MUXPOS_DAC, |
mbed_official | 15:a81a8d6c1dfe | 278 | }; |
mbed_official | 15:a81a8d6c1dfe | 279 | |
mbed_official | 15:a81a8d6c1dfe | 280 | /** |
mbed_official | 15:a81a8d6c1dfe | 281 | * \brief ADC negative MUX input selection enum |
mbed_official | 15:a81a8d6c1dfe | 282 | * |
mbed_official | 15:a81a8d6c1dfe | 283 | * Enum for the possible negative MUX input selections for the ADC. |
mbed_official | 15:a81a8d6c1dfe | 284 | * |
mbed_official | 15:a81a8d6c1dfe | 285 | */ |
mbed_official | 15:a81a8d6c1dfe | 286 | enum adc_negative_input { |
mbed_official | 15:a81a8d6c1dfe | 287 | /** ADC0 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 288 | ADC_NEGATIVE_INPUT_PIN0 = ADC_INPUTCTRL_MUXNEG_PIN0, |
mbed_official | 15:a81a8d6c1dfe | 289 | /** ADC1 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 290 | ADC_NEGATIVE_INPUT_PIN1 = ADC_INPUTCTRL_MUXNEG_PIN1, |
mbed_official | 15:a81a8d6c1dfe | 291 | /** ADC2 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 292 | ADC_NEGATIVE_INPUT_PIN2 = ADC_INPUTCTRL_MUXNEG_PIN2, |
mbed_official | 15:a81a8d6c1dfe | 293 | /** ADC3 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 294 | ADC_NEGATIVE_INPUT_PIN3 = ADC_INPUTCTRL_MUXNEG_PIN3, |
mbed_official | 15:a81a8d6c1dfe | 295 | /** ADC4 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 296 | ADC_NEGATIVE_INPUT_PIN4 = ADC_INPUTCTRL_MUXNEG_PIN4, |
mbed_official | 15:a81a8d6c1dfe | 297 | /** ADC5 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 298 | ADC_NEGATIVE_INPUT_PIN5 = ADC_INPUTCTRL_MUXNEG_PIN5, |
mbed_official | 15:a81a8d6c1dfe | 299 | /** ADC6 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 300 | ADC_NEGATIVE_INPUT_PIN6 = ADC_INPUTCTRL_MUXNEG_PIN6, |
mbed_official | 15:a81a8d6c1dfe | 301 | /** ADC7 pin. */ |
mbed_official | 15:a81a8d6c1dfe | 302 | ADC_NEGATIVE_INPUT_PIN7 = ADC_INPUTCTRL_MUXNEG_PIN7, |
mbed_official | 15:a81a8d6c1dfe | 303 | /** Internal ground. */ |
mbed_official | 15:a81a8d6c1dfe | 304 | ADC_NEGATIVE_INPUT_GND = ADC_INPUTCTRL_MUXNEG_GND, |
mbed_official | 15:a81a8d6c1dfe | 305 | /** I/O ground. */ |
mbed_official | 15:a81a8d6c1dfe | 306 | ADC_NEGATIVE_INPUT_IOGND = ADC_INPUTCTRL_MUXNEG_IOGND, |
mbed_official | 15:a81a8d6c1dfe | 307 | }; |
mbed_official | 15:a81a8d6c1dfe | 308 | |
mbed_official | 15:a81a8d6c1dfe | 309 | /** |
mbed_official | 15:a81a8d6c1dfe | 310 | * \brief ADC number of accumulated samples enum |
mbed_official | 15:a81a8d6c1dfe | 311 | * |
mbed_official | 15:a81a8d6c1dfe | 312 | * Enum for the possible numbers of ADC samples to accumulate. |
mbed_official | 15:a81a8d6c1dfe | 313 | * This setting is only used when the \ref ADC_RESOLUTION_CUSTOM |
mbed_official | 15:a81a8d6c1dfe | 314 | * resolution setting is used. |
mbed_official | 15:a81a8d6c1dfe | 315 | * |
mbed_official | 15:a81a8d6c1dfe | 316 | */ |
mbed_official | 15:a81a8d6c1dfe | 317 | enum adc_accumulate_samples { |
mbed_official | 15:a81a8d6c1dfe | 318 | /** No averaging. */ |
mbed_official | 15:a81a8d6c1dfe | 319 | ADC_ACCUMULATE_DISABLE = ADC_AVGCTRL_SAMPLENUM_1, |
mbed_official | 15:a81a8d6c1dfe | 320 | /** Average 2 samples. */ |
mbed_official | 15:a81a8d6c1dfe | 321 | ADC_ACCUMULATE_SAMPLES_2 = ADC_AVGCTRL_SAMPLENUM_2, |
mbed_official | 15:a81a8d6c1dfe | 322 | /** Average 4 samples. */ |
mbed_official | 15:a81a8d6c1dfe | 323 | ADC_ACCUMULATE_SAMPLES_4 = ADC_AVGCTRL_SAMPLENUM_4, |
mbed_official | 15:a81a8d6c1dfe | 324 | /** Average 8 samples. */ |
mbed_official | 15:a81a8d6c1dfe | 325 | ADC_ACCUMULATE_SAMPLES_8 = ADC_AVGCTRL_SAMPLENUM_8, |
mbed_official | 15:a81a8d6c1dfe | 326 | /** Average 16 samples. */ |
mbed_official | 15:a81a8d6c1dfe | 327 | ADC_ACCUMULATE_SAMPLES_16 = ADC_AVGCTRL_SAMPLENUM_16, |
mbed_official | 15:a81a8d6c1dfe | 328 | /** Average 32 samples. */ |
mbed_official | 15:a81a8d6c1dfe | 329 | ADC_ACCUMULATE_SAMPLES_32 = ADC_AVGCTRL_SAMPLENUM_32, |
mbed_official | 15:a81a8d6c1dfe | 330 | /** Average 64 samples. */ |
mbed_official | 15:a81a8d6c1dfe | 331 | ADC_ACCUMULATE_SAMPLES_64 = ADC_AVGCTRL_SAMPLENUM_64, |
mbed_official | 15:a81a8d6c1dfe | 332 | /** Average 128 samples. */ |
mbed_official | 15:a81a8d6c1dfe | 333 | ADC_ACCUMULATE_SAMPLES_128 = ADC_AVGCTRL_SAMPLENUM_128, |
mbed_official | 15:a81a8d6c1dfe | 334 | /** Average 256 samples. */ |
mbed_official | 15:a81a8d6c1dfe | 335 | ADC_ACCUMULATE_SAMPLES_256 = ADC_AVGCTRL_SAMPLENUM_256, |
mbed_official | 15:a81a8d6c1dfe | 336 | /** Average 512 samples. */ |
mbed_official | 15:a81a8d6c1dfe | 337 | ADC_ACCUMULATE_SAMPLES_512 = ADC_AVGCTRL_SAMPLENUM_512, |
mbed_official | 15:a81a8d6c1dfe | 338 | /** Average 1024 samples. */ |
mbed_official | 15:a81a8d6c1dfe | 339 | ADC_ACCUMULATE_SAMPLES_1024 = ADC_AVGCTRL_SAMPLENUM_1024, |
mbed_official | 15:a81a8d6c1dfe | 340 | }; |
mbed_official | 15:a81a8d6c1dfe | 341 | |
mbed_official | 15:a81a8d6c1dfe | 342 | /** |
mbed_official | 15:a81a8d6c1dfe | 343 | * \brief ADC possible dividers for the result register |
mbed_official | 15:a81a8d6c1dfe | 344 | * |
mbed_official | 15:a81a8d6c1dfe | 345 | * Enum for the possible division factors to use when accumulating |
mbed_official | 15:a81a8d6c1dfe | 346 | * multiple samples. To keep the same resolution for the averaged |
mbed_official | 15:a81a8d6c1dfe | 347 | * result and the actual input value, the division factor must |
mbed_official | 15:a81a8d6c1dfe | 348 | * be equal to the number of samples accumulated. This setting is only |
mbed_official | 15:a81a8d6c1dfe | 349 | * used when the \ref ADC_RESOLUTION_CUSTOM resolution setting is used. |
mbed_official | 15:a81a8d6c1dfe | 350 | */ |
mbed_official | 15:a81a8d6c1dfe | 351 | enum adc_divide_result { |
mbed_official | 15:a81a8d6c1dfe | 352 | /** Don't divide result register after accumulation. */ |
mbed_official | 15:a81a8d6c1dfe | 353 | ADC_DIVIDE_RESULT_DISABLE = 0, |
mbed_official | 15:a81a8d6c1dfe | 354 | /** Divide result register by 2 after accumulation. */ |
mbed_official | 15:a81a8d6c1dfe | 355 | ADC_DIVIDE_RESULT_2 = 1, |
mbed_official | 15:a81a8d6c1dfe | 356 | /** Divide result register by 4 after accumulation. */ |
mbed_official | 15:a81a8d6c1dfe | 357 | ADC_DIVIDE_RESULT_4 = 2, |
mbed_official | 15:a81a8d6c1dfe | 358 | /** Divide result register by 8 after accumulation. */ |
mbed_official | 15:a81a8d6c1dfe | 359 | ADC_DIVIDE_RESULT_8 = 3, |
mbed_official | 15:a81a8d6c1dfe | 360 | /** Divide result register by 16 after accumulation. */ |
mbed_official | 15:a81a8d6c1dfe | 361 | ADC_DIVIDE_RESULT_16 = 4, |
mbed_official | 15:a81a8d6c1dfe | 362 | /** Divide result register by 32 after accumulation. */ |
mbed_official | 15:a81a8d6c1dfe | 363 | ADC_DIVIDE_RESULT_32 = 5, |
mbed_official | 15:a81a8d6c1dfe | 364 | /** Divide result register by 64 after accumulation. */ |
mbed_official | 15:a81a8d6c1dfe | 365 | ADC_DIVIDE_RESULT_64 = 6, |
mbed_official | 15:a81a8d6c1dfe | 366 | /** Divide result register by 128 after accumulation. */ |
mbed_official | 15:a81a8d6c1dfe | 367 | ADC_DIVIDE_RESULT_128 = 7, |
mbed_official | 15:a81a8d6c1dfe | 368 | }; |
mbed_official | 15:a81a8d6c1dfe | 369 | |
mbed_official | 15:a81a8d6c1dfe | 370 | #if ADC_CALLBACK_MODE == true |
mbed_official | 15:a81a8d6c1dfe | 371 | /** |
mbed_official | 15:a81a8d6c1dfe | 372 | * Enum for the possible ADC interrupt flags. |
mbed_official | 15:a81a8d6c1dfe | 373 | */ |
mbed_official | 15:a81a8d6c1dfe | 374 | enum adc_interrupt_flag { |
mbed_official | 15:a81a8d6c1dfe | 375 | /** ADC result ready. */ |
mbed_official | 15:a81a8d6c1dfe | 376 | ADC_INTERRUPT_RESULT_READY = ADC_INTFLAG_RESRDY, |
mbed_official | 15:a81a8d6c1dfe | 377 | /** Window monitor match. */ |
mbed_official | 15:a81a8d6c1dfe | 378 | ADC_INTERRUPT_WINDOW = ADC_INTFLAG_WINMON, |
mbed_official | 15:a81a8d6c1dfe | 379 | /** ADC result overwritten before read. */ |
mbed_official | 15:a81a8d6c1dfe | 380 | ADC_INTERRUPT_OVERRUN = ADC_INTFLAG_OVERRUN, |
mbed_official | 15:a81a8d6c1dfe | 381 | }; |
mbed_official | 15:a81a8d6c1dfe | 382 | #endif |
mbed_official | 15:a81a8d6c1dfe | 383 | |
mbed_official | 15:a81a8d6c1dfe | 384 | /** |
mbed_official | 15:a81a8d6c1dfe | 385 | * \brief ADC oversampling and decimation enum |
mbed_official | 15:a81a8d6c1dfe | 386 | * |
mbed_official | 15:a81a8d6c1dfe | 387 | * Enum for the possible numbers of bits resolution can be increased by when |
mbed_official | 15:a81a8d6c1dfe | 388 | * using oversampling and decimation. |
mbed_official | 15:a81a8d6c1dfe | 389 | * |
mbed_official | 15:a81a8d6c1dfe | 390 | */ |
mbed_official | 15:a81a8d6c1dfe | 391 | enum adc_oversampling_and_decimation { |
mbed_official | 15:a81a8d6c1dfe | 392 | /** Don't use oversampling and decimation mode. */ |
mbed_official | 15:a81a8d6c1dfe | 393 | ADC_OVERSAMPLING_AND_DECIMATION_DISABLE = 0, |
mbed_official | 15:a81a8d6c1dfe | 394 | /** 1 bit resolution increase. */ |
mbed_official | 15:a81a8d6c1dfe | 395 | ADC_OVERSAMPLING_AND_DECIMATION_1BIT, |
mbed_official | 15:a81a8d6c1dfe | 396 | /** 2 bits resolution increase. */ |
mbed_official | 15:a81a8d6c1dfe | 397 | ADC_OVERSAMPLING_AND_DECIMATION_2BIT, |
mbed_official | 15:a81a8d6c1dfe | 398 | /** 3 bits resolution increase. */ |
mbed_official | 15:a81a8d6c1dfe | 399 | ADC_OVERSAMPLING_AND_DECIMATION_3BIT, |
mbed_official | 15:a81a8d6c1dfe | 400 | /** 4 bits resolution increase. */ |
mbed_official | 15:a81a8d6c1dfe | 401 | ADC_OVERSAMPLING_AND_DECIMATION_4BIT |
mbed_official | 15:a81a8d6c1dfe | 402 | }; |
mbed_official | 15:a81a8d6c1dfe | 403 | |
mbed_official | 15:a81a8d6c1dfe | 404 | /** |
mbed_official | 15:a81a8d6c1dfe | 405 | * \brief Window monitor configuration structure |
mbed_official | 15:a81a8d6c1dfe | 406 | * |
mbed_official | 15:a81a8d6c1dfe | 407 | * Window monitor configuration structure. |
mbed_official | 15:a81a8d6c1dfe | 408 | */ |
mbed_official | 15:a81a8d6c1dfe | 409 | struct adc_window_config { |
mbed_official | 15:a81a8d6c1dfe | 410 | /** Selected window mode. */ |
mbed_official | 15:a81a8d6c1dfe | 411 | enum adc_window_mode window_mode; |
mbed_official | 15:a81a8d6c1dfe | 412 | /** Lower window value. */ |
mbed_official | 15:a81a8d6c1dfe | 413 | int32_t window_lower_value; |
mbed_official | 15:a81a8d6c1dfe | 414 | /** Upper window value. */ |
mbed_official | 15:a81a8d6c1dfe | 415 | int32_t window_upper_value; |
mbed_official | 15:a81a8d6c1dfe | 416 | }; |
mbed_official | 15:a81a8d6c1dfe | 417 | |
mbed_official | 15:a81a8d6c1dfe | 418 | /** |
mbed_official | 15:a81a8d6c1dfe | 419 | * \brief ADC event enable/disable structure. |
mbed_official | 15:a81a8d6c1dfe | 420 | * |
mbed_official | 15:a81a8d6c1dfe | 421 | * Event flags for the ADC module. This is used to enable and |
mbed_official | 15:a81a8d6c1dfe | 422 | * disable events via \ref adc_enable_events() and \ref adc_disable_events(). |
mbed_official | 15:a81a8d6c1dfe | 423 | */ |
mbed_official | 15:a81a8d6c1dfe | 424 | struct adc_events { |
mbed_official | 15:a81a8d6c1dfe | 425 | /** Enable event generation on conversion done. */ |
mbed_official | 15:a81a8d6c1dfe | 426 | bool generate_event_on_conversion_done; |
mbed_official | 15:a81a8d6c1dfe | 427 | /** Enable event generation on window monitor. */ |
mbed_official | 15:a81a8d6c1dfe | 428 | bool generate_event_on_window_monitor; |
mbed_official | 15:a81a8d6c1dfe | 429 | }; |
mbed_official | 15:a81a8d6c1dfe | 430 | |
mbed_official | 15:a81a8d6c1dfe | 431 | /** |
mbed_official | 15:a81a8d6c1dfe | 432 | * \brief Gain and offset correction configuration structure |
mbed_official | 15:a81a8d6c1dfe | 433 | * |
mbed_official | 15:a81a8d6c1dfe | 434 | * Gain and offset correction configuration structure. |
mbed_official | 15:a81a8d6c1dfe | 435 | * Part of the \ref adc_config struct and will be initialized by |
mbed_official | 15:a81a8d6c1dfe | 436 | * \ref adc_get_config_defaults. |
mbed_official | 15:a81a8d6c1dfe | 437 | */ |
mbed_official | 15:a81a8d6c1dfe | 438 | struct adc_correction_config { |
mbed_official | 15:a81a8d6c1dfe | 439 | /** |
mbed_official | 15:a81a8d6c1dfe | 440 | * Enables correction for gain and offset based on values of gain_correction and |
mbed_official | 15:a81a8d6c1dfe | 441 | * offset_correction if set to true. |
mbed_official | 15:a81a8d6c1dfe | 442 | */ |
mbed_official | 15:a81a8d6c1dfe | 443 | bool correction_enable; |
mbed_official | 15:a81a8d6c1dfe | 444 | /** |
mbed_official | 15:a81a8d6c1dfe | 445 | * This value defines how the ADC conversion result is compensated for gain |
mbed_official | 15:a81a8d6c1dfe | 446 | * error before written to the result register. This is a fractional value, |
mbed_official | 15:a81a8d6c1dfe | 447 | * 1-bit integer plus an 11-bit fraction, therefore |
mbed_official | 15:a81a8d6c1dfe | 448 | * 1/2 <= gain_correction < 2. Valid \c gain_correction values ranges from |
mbed_official | 15:a81a8d6c1dfe | 449 | * \c 0b010000000000 to \c 0b111111111111. |
mbed_official | 15:a81a8d6c1dfe | 450 | */ |
mbed_official | 15:a81a8d6c1dfe | 451 | uint16_t gain_correction; |
mbed_official | 15:a81a8d6c1dfe | 452 | /** |
mbed_official | 15:a81a8d6c1dfe | 453 | * This value defines how the ADC conversion result is compensated for |
mbed_official | 15:a81a8d6c1dfe | 454 | * offset error before written to the result register. This is a 12-bit |
mbed_official | 15:a81a8d6c1dfe | 455 | * value in two's complement format. |
mbed_official | 15:a81a8d6c1dfe | 456 | */ |
mbed_official | 15:a81a8d6c1dfe | 457 | int16_t offset_correction; |
mbed_official | 15:a81a8d6c1dfe | 458 | }; |
mbed_official | 15:a81a8d6c1dfe | 459 | |
mbed_official | 15:a81a8d6c1dfe | 460 | /** |
mbed_official | 15:a81a8d6c1dfe | 461 | * \brief Pin scan configuration structure |
mbed_official | 15:a81a8d6c1dfe | 462 | * |
mbed_official | 15:a81a8d6c1dfe | 463 | * Pin scan configuration structure. Part of the \ref adc_config struct and will |
mbed_official | 15:a81a8d6c1dfe | 464 | * be initialized by \ref adc_get_config_defaults. |
mbed_official | 15:a81a8d6c1dfe | 465 | */ |
mbed_official | 15:a81a8d6c1dfe | 466 | struct adc_pin_scan_config { |
mbed_official | 15:a81a8d6c1dfe | 467 | /** |
mbed_official | 15:a81a8d6c1dfe | 468 | * Offset (relative to selected positive input) of the first input pin to be |
mbed_official | 15:a81a8d6c1dfe | 469 | * used in pin scan mode. |
mbed_official | 15:a81a8d6c1dfe | 470 | */ |
mbed_official | 15:a81a8d6c1dfe | 471 | uint8_t offset_start_scan; |
mbed_official | 15:a81a8d6c1dfe | 472 | /** |
mbed_official | 15:a81a8d6c1dfe | 473 | * Number of input pins to scan in pin scan mode. A value below two will |
mbed_official | 15:a81a8d6c1dfe | 474 | * disable pin scan mode. |
mbed_official | 15:a81a8d6c1dfe | 475 | */ |
mbed_official | 15:a81a8d6c1dfe | 476 | uint8_t inputs_to_scan; |
mbed_official | 15:a81a8d6c1dfe | 477 | }; |
mbed_official | 15:a81a8d6c1dfe | 478 | |
mbed_official | 15:a81a8d6c1dfe | 479 | /** |
mbed_official | 15:a81a8d6c1dfe | 480 | * \brief ADC configuration structure |
mbed_official | 15:a81a8d6c1dfe | 481 | * |
mbed_official | 15:a81a8d6c1dfe | 482 | * Configuration structure for an ADC instance. This structure should be |
mbed_official | 15:a81a8d6c1dfe | 483 | * initialized by the \ref adc_get_config_defaults() |
mbed_official | 15:a81a8d6c1dfe | 484 | * function before being modified by the user application. |
mbed_official | 15:a81a8d6c1dfe | 485 | */ |
mbed_official | 15:a81a8d6c1dfe | 486 | struct adc_config { |
mbed_official | 15:a81a8d6c1dfe | 487 | /** GCLK generator used to clock the peripheral. */ |
mbed_official | 15:a81a8d6c1dfe | 488 | enum gclk_generator clock_source; |
mbed_official | 15:a81a8d6c1dfe | 489 | /** Voltage reference. */ |
mbed_official | 15:a81a8d6c1dfe | 490 | enum adc_reference reference; |
mbed_official | 15:a81a8d6c1dfe | 491 | /** Clock prescaler. */ |
mbed_official | 15:a81a8d6c1dfe | 492 | enum adc_clock_prescaler clock_prescaler; |
mbed_official | 15:a81a8d6c1dfe | 493 | /** Result resolution. */ |
mbed_official | 15:a81a8d6c1dfe | 494 | enum adc_resolution resolution; |
mbed_official | 15:a81a8d6c1dfe | 495 | /** Gain factor. */ |
mbed_official | 15:a81a8d6c1dfe | 496 | enum adc_gain_factor gain_factor; |
mbed_official | 15:a81a8d6c1dfe | 497 | /** Positive MUX input. */ |
mbed_official | 15:a81a8d6c1dfe | 498 | enum adc_positive_input positive_input; |
mbed_official | 15:a81a8d6c1dfe | 499 | /** Negative MUX input. For singled-ended conversion mode, the negative |
mbed_official | 15:a81a8d6c1dfe | 500 | * input must be connected to ground. This ground could be the internal |
mbed_official | 15:a81a8d6c1dfe | 501 | * GND, IOGND or an external ground connected to a pin. */ |
mbed_official | 15:a81a8d6c1dfe | 502 | enum adc_negative_input negative_input; |
mbed_official | 15:a81a8d6c1dfe | 503 | /** Number of ADC samples to accumulate when using the |
mbed_official | 15:a81a8d6c1dfe | 504 | * \c ADC_RESOLUTION_CUSTOM mode.Note: if the result width increases, |
mbed_official | 15:a81a8d6c1dfe | 505 | * result resolution will be changed accordingly. |
mbed_official | 15:a81a8d6c1dfe | 506 | */ |
mbed_official | 15:a81a8d6c1dfe | 507 | enum adc_accumulate_samples accumulate_samples; |
mbed_official | 15:a81a8d6c1dfe | 508 | /** Division ration when using the ADC_RESOLUTION_CUSTOM mode. */ |
mbed_official | 15:a81a8d6c1dfe | 509 | enum adc_divide_result divide_result; |
mbed_official | 15:a81a8d6c1dfe | 510 | /** Left adjusted result. */ |
mbed_official | 15:a81a8d6c1dfe | 511 | bool left_adjust; |
mbed_official | 15:a81a8d6c1dfe | 512 | /** Enables differential mode if true. |
mbed_official | 15:a81a8d6c1dfe | 513 | * if false, ADC will run in singled-ended mode. */ |
mbed_official | 15:a81a8d6c1dfe | 514 | bool differential_mode; |
mbed_official | 15:a81a8d6c1dfe | 515 | /** Enables free running mode if true. */ |
mbed_official | 15:a81a8d6c1dfe | 516 | bool freerunning; |
mbed_official | 15:a81a8d6c1dfe | 517 | /** Enables ADC in standby sleep mode if true. */ |
mbed_official | 15:a81a8d6c1dfe | 518 | bool run_in_standby; |
mbed_official | 15:a81a8d6c1dfe | 519 | /** |
mbed_official | 15:a81a8d6c1dfe | 520 | * Enables reference buffer offset compensation if true. |
mbed_official | 15:a81a8d6c1dfe | 521 | * This will increase the accuracy of the gain stage, but decreases the input |
mbed_official | 15:a81a8d6c1dfe | 522 | * impedance; therefore the startup time of the reference must be increased. |
mbed_official | 15:a81a8d6c1dfe | 523 | */ |
mbed_official | 15:a81a8d6c1dfe | 524 | bool reference_compensation_enable; |
mbed_official | 15:a81a8d6c1dfe | 525 | /** |
mbed_official | 15:a81a8d6c1dfe | 526 | * This value (0-63) control the ADC sampling time in number of half ADC |
mbed_official | 15:a81a8d6c1dfe | 527 | * prescaled clock cycles (depends of \c ADC_PRESCALER value), thus |
mbed_official | 15:a81a8d6c1dfe | 528 | * controlling the ADC input impedance. Sampling time is set according to |
mbed_official | 15:a81a8d6c1dfe | 529 | * the formula: |
mbed_official | 15:a81a8d6c1dfe | 530 | * Sample time = (sample_length+1) * (ADCclk / 2). |
mbed_official | 15:a81a8d6c1dfe | 531 | */ |
mbed_official | 15:a81a8d6c1dfe | 532 | uint8_t sample_length; |
mbed_official | 15:a81a8d6c1dfe | 533 | /** Window monitor configuration structure. */ |
mbed_official | 15:a81a8d6c1dfe | 534 | struct adc_window_config window; |
mbed_official | 15:a81a8d6c1dfe | 535 | /** Gain and offset correction configuration structure. */ |
mbed_official | 15:a81a8d6c1dfe | 536 | struct adc_correction_config correction; |
mbed_official | 15:a81a8d6c1dfe | 537 | /** Event action to take on incoming event. */ |
mbed_official | 15:a81a8d6c1dfe | 538 | enum adc_event_action event_action; |
mbed_official | 15:a81a8d6c1dfe | 539 | /** Pin scan configuration structure. */ |
mbed_official | 15:a81a8d6c1dfe | 540 | struct adc_pin_scan_config pin_scan; |
mbed_official | 15:a81a8d6c1dfe | 541 | }; |
mbed_official | 15:a81a8d6c1dfe | 542 | |
mbed_official | 15:a81a8d6c1dfe | 543 | /** |
mbed_official | 15:a81a8d6c1dfe | 544 | * \brief ADC software device instance structure. |
mbed_official | 15:a81a8d6c1dfe | 545 | * |
mbed_official | 15:a81a8d6c1dfe | 546 | * ADC software instance structure, used to retain software state information |
mbed_official | 15:a81a8d6c1dfe | 547 | * of an associated hardware module instance. |
mbed_official | 15:a81a8d6c1dfe | 548 | * |
mbed_official | 15:a81a8d6c1dfe | 549 | * \note The fields of this structure should not be altered by the user |
mbed_official | 15:a81a8d6c1dfe | 550 | * application; they are reserved for module-internal use only. |
mbed_official | 15:a81a8d6c1dfe | 551 | */ |
mbed_official | 15:a81a8d6c1dfe | 552 | struct adc_module { |
mbed_official | 15:a81a8d6c1dfe | 553 | #if !defined(__DOXYGEN__) |
mbed_official | 15:a81a8d6c1dfe | 554 | /** Pointer to ADC hardware module. */ |
mbed_official | 15:a81a8d6c1dfe | 555 | Adc *hw; |
mbed_official | 15:a81a8d6c1dfe | 556 | /** Keep reference configuration so we know when enable is called. */ |
mbed_official | 15:a81a8d6c1dfe | 557 | enum adc_reference reference; |
mbed_official | 15:a81a8d6c1dfe | 558 | # if ADC_CALLBACK_MODE == true |
mbed_official | 15:a81a8d6c1dfe | 559 | /** Array to store callback functions. */ |
mbed_official | 15:a81a8d6c1dfe | 560 | adc_callback_t callback[ADC_CALLBACK_N]; |
mbed_official | 15:a81a8d6c1dfe | 561 | /** Pointer to buffer used for ADC results. */ |
mbed_official | 15:a81a8d6c1dfe | 562 | volatile uint16_t *job_buffer; |
mbed_official | 15:a81a8d6c1dfe | 563 | /** Remaining number of conversions in current job. */ |
mbed_official | 15:a81a8d6c1dfe | 564 | volatile uint16_t remaining_conversions; |
mbed_official | 15:a81a8d6c1dfe | 565 | /** Bit mask for callbacks registered. */ |
mbed_official | 15:a81a8d6c1dfe | 566 | uint8_t registered_callback_mask; |
mbed_official | 15:a81a8d6c1dfe | 567 | /** Bit mask for callbacks enabled. */ |
mbed_official | 15:a81a8d6c1dfe | 568 | uint8_t enabled_callback_mask; |
mbed_official | 15:a81a8d6c1dfe | 569 | /** Holds the status of the ongoing or last conversion job. */ |
mbed_official | 15:a81a8d6c1dfe | 570 | volatile enum status_code job_status; |
mbed_official | 15:a81a8d6c1dfe | 571 | /** If software triggering is needed. */ |
mbed_official | 15:a81a8d6c1dfe | 572 | bool software_trigger; |
mbed_official | 15:a81a8d6c1dfe | 573 | # endif |
mbed_official | 15:a81a8d6c1dfe | 574 | #endif |
mbed_official | 15:a81a8d6c1dfe | 575 | }; |
mbed_official | 15:a81a8d6c1dfe | 576 | |
mbed_official | 15:a81a8d6c1dfe | 577 | #if !defined(__DOXYGEN__) |
mbed_official | 15:a81a8d6c1dfe | 578 | |
mbed_official | 15:a81a8d6c1dfe | 579 | /** |
mbed_official | 15:a81a8d6c1dfe | 580 | * \brief Determines if the hardware module(s) are currently synchronizing to the bus. |
mbed_official | 15:a81a8d6c1dfe | 581 | * |
mbed_official | 15:a81a8d6c1dfe | 582 | * Checks to see if the underlying hardware peripheral module(s) are currently |
mbed_official | 15:a81a8d6c1dfe | 583 | * synchronizing across multiple clock domains to the hardware bus. This |
mbed_official | 15:a81a8d6c1dfe | 584 | * function can be used to delay further operations on a module until such time |
mbed_official | 15:a81a8d6c1dfe | 585 | * that it is ready, to prevent blocking delays for synchronization in the |
mbed_official | 15:a81a8d6c1dfe | 586 | * user application. |
mbed_official | 15:a81a8d6c1dfe | 587 | * |
mbed_official | 15:a81a8d6c1dfe | 588 | * \param[in] module_inst Pointer to the ADC software instance struct |
mbed_official | 15:a81a8d6c1dfe | 589 | * |
mbed_official | 15:a81a8d6c1dfe | 590 | * \return Synchronization status of the underlying hardware module(s). |
mbed_official | 15:a81a8d6c1dfe | 591 | * |
mbed_official | 15:a81a8d6c1dfe | 592 | * \retval true if the module synchronization is ongoing |
mbed_official | 15:a81a8d6c1dfe | 593 | * \retval false if the module has completed synchronization |
mbed_official | 15:a81a8d6c1dfe | 594 | */ |
mbed_official | 15:a81a8d6c1dfe | 595 | static inline bool adc_is_syncing( |
mbed_official | 15:a81a8d6c1dfe | 596 | struct adc_module *const module_inst) |
mbed_official | 15:a81a8d6c1dfe | 597 | { |
mbed_official | 15:a81a8d6c1dfe | 598 | /* Sanity check arguments */ |
mbed_official | 15:a81a8d6c1dfe | 599 | Assert(module_inst); |
mbed_official | 15:a81a8d6c1dfe | 600 | |
mbed_official | 15:a81a8d6c1dfe | 601 | Adc *const adc_module = module_inst->hw; |
mbed_official | 15:a81a8d6c1dfe | 602 | |
mbed_official | 15:a81a8d6c1dfe | 603 | if (adc_module->STATUS.reg & ADC_STATUS_SYNCBUSY) { |
mbed_official | 15:a81a8d6c1dfe | 604 | return true; |
mbed_official | 15:a81a8d6c1dfe | 605 | } |
mbed_official | 15:a81a8d6c1dfe | 606 | |
mbed_official | 15:a81a8d6c1dfe | 607 | return false; |
mbed_official | 15:a81a8d6c1dfe | 608 | } |
mbed_official | 15:a81a8d6c1dfe | 609 | #endif |
mbed_official | 15:a81a8d6c1dfe | 610 | |
mbed_official | 15:a81a8d6c1dfe | 611 | /** |
mbed_official | 15:a81a8d6c1dfe | 612 | * \name ADC Gain and Pin Scan Mode |
mbed_official | 15:a81a8d6c1dfe | 613 | * @{ |
mbed_official | 15:a81a8d6c1dfe | 614 | */ |
mbed_official | 15:a81a8d6c1dfe | 615 | |
mbed_official | 15:a81a8d6c1dfe | 616 | /** |
mbed_official | 15:a81a8d6c1dfe | 617 | * \brief Sets ADC gain factor |
mbed_official | 15:a81a8d6c1dfe | 618 | * |
mbed_official | 15:a81a8d6c1dfe | 619 | * Sets the ADC gain factor to a specified gain setting. |
mbed_official | 15:a81a8d6c1dfe | 620 | * |
mbed_official | 15:a81a8d6c1dfe | 621 | * \param[in] module_inst Pointer to the ADC software instance struct |
mbed_official | 15:a81a8d6c1dfe | 622 | * \param[in] gain_factor Gain factor value to set |
mbed_official | 15:a81a8d6c1dfe | 623 | */ |
mbed_official | 15:a81a8d6c1dfe | 624 | static inline void adc_set_gain( |
mbed_official | 15:a81a8d6c1dfe | 625 | struct adc_module *const module_inst, |
mbed_official | 15:a81a8d6c1dfe | 626 | const enum adc_gain_factor gain_factor) |
mbed_official | 15:a81a8d6c1dfe | 627 | { |
mbed_official | 15:a81a8d6c1dfe | 628 | /* Sanity check arguments */ |
mbed_official | 15:a81a8d6c1dfe | 629 | Assert(module_inst); |
mbed_official | 15:a81a8d6c1dfe | 630 | Assert(module_inst->hw); |
mbed_official | 15:a81a8d6c1dfe | 631 | |
mbed_official | 15:a81a8d6c1dfe | 632 | Adc *const adc_module = module_inst->hw; |
mbed_official | 15:a81a8d6c1dfe | 633 | |
mbed_official | 15:a81a8d6c1dfe | 634 | while (adc_is_syncing(module_inst)) { |
mbed_official | 15:a81a8d6c1dfe | 635 | /* Wait for synchronization */ |
mbed_official | 15:a81a8d6c1dfe | 636 | } |
mbed_official | 15:a81a8d6c1dfe | 637 | |
mbed_official | 15:a81a8d6c1dfe | 638 | /* Set new gain factor */ |
mbed_official | 15:a81a8d6c1dfe | 639 | adc_module->INPUTCTRL.reg = |
mbed_official | 15:a81a8d6c1dfe | 640 | (adc_module->INPUTCTRL.reg & ~ADC_INPUTCTRL_GAIN_Msk) | |
mbed_official | 15:a81a8d6c1dfe | 641 | (gain_factor); |
mbed_official | 15:a81a8d6c1dfe | 642 | } |
mbed_official | 15:a81a8d6c1dfe | 643 | |
mbed_official | 15:a81a8d6c1dfe | 644 | /** |
mbed_official | 15:a81a8d6c1dfe | 645 | * \brief Sets the ADC pin scan mode |
mbed_official | 15:a81a8d6c1dfe | 646 | * |
mbed_official | 15:a81a8d6c1dfe | 647 | * Configures the pin scan mode of the ADC module. In pin scan mode, the first |
mbed_official | 15:a81a8d6c1dfe | 648 | * conversion will start at the configured positive input + start_offset. When |
mbed_official | 15:a81a8d6c1dfe | 649 | * a conversion is done, a conversion will start on the next input, until |
mbed_official | 15:a81a8d6c1dfe | 650 | * \c inputs_to_scan number of conversions are made. |
mbed_official | 15:a81a8d6c1dfe | 651 | * |
mbed_official | 15:a81a8d6c1dfe | 652 | * \param[in] module_inst Pointer to the ADC software instance struct |
mbed_official | 15:a81a8d6c1dfe | 653 | * \param[in] inputs_to_scan Number of input pins to perform a conversion on |
mbed_official | 15:a81a8d6c1dfe | 654 | * (must be two or more) |
mbed_official | 15:a81a8d6c1dfe | 655 | * \param[in] start_offset Offset of first pin to scan (relative to |
mbed_official | 15:a81a8d6c1dfe | 656 | * configured positive input) |
mbed_official | 15:a81a8d6c1dfe | 657 | * |
mbed_official | 15:a81a8d6c1dfe | 658 | * \return Status of the pin scan configuration set request. |
mbed_official | 15:a81a8d6c1dfe | 659 | * |
mbed_official | 15:a81a8d6c1dfe | 660 | * \retval STATUS_OK Pin scan mode has been set successfully |
mbed_official | 15:a81a8d6c1dfe | 661 | * \retval STATUS_ERR_INVALID_ARG Number of input pins to scan or offset has |
mbed_official | 15:a81a8d6c1dfe | 662 | * an invalid value |
mbed_official | 15:a81a8d6c1dfe | 663 | */ |
mbed_official | 15:a81a8d6c1dfe | 664 | static inline enum status_code adc_set_pin_scan_mode( |
mbed_official | 15:a81a8d6c1dfe | 665 | struct adc_module *const module_inst, |
mbed_official | 15:a81a8d6c1dfe | 666 | uint8_t inputs_to_scan, |
mbed_official | 15:a81a8d6c1dfe | 667 | const uint8_t start_offset) |
mbed_official | 15:a81a8d6c1dfe | 668 | |
mbed_official | 15:a81a8d6c1dfe | 669 | { |
mbed_official | 15:a81a8d6c1dfe | 670 | /* Sanity check arguments */ |
mbed_official | 15:a81a8d6c1dfe | 671 | Assert(module_inst); |
mbed_official | 15:a81a8d6c1dfe | 672 | Assert(module_inst->hw); |
mbed_official | 15:a81a8d6c1dfe | 673 | |
mbed_official | 15:a81a8d6c1dfe | 674 | Adc *const adc_module = module_inst->hw; |
mbed_official | 15:a81a8d6c1dfe | 675 | |
mbed_official | 15:a81a8d6c1dfe | 676 | if (inputs_to_scan > 0) { |
mbed_official | 15:a81a8d6c1dfe | 677 | /* |
mbed_official | 15:a81a8d6c1dfe | 678 | * Number of input sources included is the value written to INPUTSCAN |
mbed_official | 15:a81a8d6c1dfe | 679 | * plus 1. |
mbed_official | 15:a81a8d6c1dfe | 680 | */ |
mbed_official | 15:a81a8d6c1dfe | 681 | inputs_to_scan--; |
mbed_official | 15:a81a8d6c1dfe | 682 | } |
mbed_official | 15:a81a8d6c1dfe | 683 | |
mbed_official | 15:a81a8d6c1dfe | 684 | if (inputs_to_scan > (ADC_INPUTCTRL_INPUTSCAN_Msk >> ADC_INPUTCTRL_INPUTSCAN_Pos) || |
mbed_official | 15:a81a8d6c1dfe | 685 | start_offset > (ADC_INPUTCTRL_INPUTOFFSET_Msk >> ADC_INPUTCTRL_INPUTOFFSET_Pos)) { |
mbed_official | 15:a81a8d6c1dfe | 686 | /* Invalid number of input pins */ |
mbed_official | 15:a81a8d6c1dfe | 687 | return STATUS_ERR_INVALID_ARG; |
mbed_official | 15:a81a8d6c1dfe | 688 | } |
mbed_official | 15:a81a8d6c1dfe | 689 | |
mbed_official | 15:a81a8d6c1dfe | 690 | while (adc_is_syncing(module_inst)) { |
mbed_official | 15:a81a8d6c1dfe | 691 | /* Wait for synchronization */ |
mbed_official | 15:a81a8d6c1dfe | 692 | } |
mbed_official | 15:a81a8d6c1dfe | 693 | |
mbed_official | 15:a81a8d6c1dfe | 694 | /* Set pin scan mode */ |
mbed_official | 15:a81a8d6c1dfe | 695 | adc_module->INPUTCTRL.reg = |
mbed_official | 15:a81a8d6c1dfe | 696 | (adc_module->INPUTCTRL.reg & |
mbed_official | 15:a81a8d6c1dfe | 697 | ~(ADC_INPUTCTRL_INPUTSCAN_Msk | ADC_INPUTCTRL_INPUTOFFSET_Msk)) | |
mbed_official | 15:a81a8d6c1dfe | 698 | (start_offset << ADC_INPUTCTRL_INPUTOFFSET_Pos) | |
mbed_official | 15:a81a8d6c1dfe | 699 | (inputs_to_scan << ADC_INPUTCTRL_INPUTSCAN_Pos); |
mbed_official | 15:a81a8d6c1dfe | 700 | |
mbed_official | 15:a81a8d6c1dfe | 701 | return STATUS_OK; |
mbed_official | 15:a81a8d6c1dfe | 702 | } |
mbed_official | 15:a81a8d6c1dfe | 703 | |
mbed_official | 15:a81a8d6c1dfe | 704 | /** |
mbed_official | 15:a81a8d6c1dfe | 705 | * \brief Disables pin scan mode |
mbed_official | 15:a81a8d6c1dfe | 706 | * |
mbed_official | 15:a81a8d6c1dfe | 707 | * Disables pin scan mode. The next conversion will be made on only one pin |
mbed_official | 15:a81a8d6c1dfe | 708 | * (the configured positive input pin). |
mbed_official | 15:a81a8d6c1dfe | 709 | * |
mbed_official | 15:a81a8d6c1dfe | 710 | * \param[in] module_inst Pointer to the ADC software instance struct |
mbed_official | 15:a81a8d6c1dfe | 711 | */ |
mbed_official | 15:a81a8d6c1dfe | 712 | static inline void adc_disable_pin_scan_mode( |
mbed_official | 15:a81a8d6c1dfe | 713 | struct adc_module *const module_inst) |
mbed_official | 15:a81a8d6c1dfe | 714 | { |
mbed_official | 15:a81a8d6c1dfe | 715 | /* Disable pin scan mode */ |
mbed_official | 15:a81a8d6c1dfe | 716 | adc_set_pin_scan_mode(module_inst, 0, 0); |
mbed_official | 15:a81a8d6c1dfe | 717 | } |
mbed_official | 15:a81a8d6c1dfe | 718 | |
mbed_official | 15:a81a8d6c1dfe | 719 | /** @} */ |
mbed_official | 15:a81a8d6c1dfe | 720 | |
mbed_official | 15:a81a8d6c1dfe | 721 | #ifdef __cplusplus |
mbed_official | 15:a81a8d6c1dfe | 722 | } |
mbed_official | 15:a81a8d6c1dfe | 723 | #endif |
mbed_official | 15:a81a8d6c1dfe | 724 | |
mbed_official | 15:a81a8d6c1dfe | 725 | /** @} */ |
mbed_official | 15:a81a8d6c1dfe | 726 | |
mbed_official | 15:a81a8d6c1dfe | 727 | #endif /* ADC_FEATURE_H_INCLUDED */ |
mbed_official | 15:a81a8d6c1dfe | 728 |