ADCBufCC26X2.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2018-2019, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 /*!****************************************************************************
33  * @file ADCBufCC26X2.h
34  *
35  * @brief ADCBuf driver implementation for a CC26X2 analog-to-digital converter
36  *
37  * # Driver include #
38  * The ADCBuf header file should be included in an application as follows:
39  * @code
40  * #include <ti/drivers/ADCBuf.h>
41  * #include <ti/drivers/adc/ADCBufCC26X2.h>
42  * @endcode
43  *
44  * # Overview #
45  * This is a CC26X2 specific implementation of the generic TI-RTOS ADCBuf
46  * driver. The generic ADCBuf API specified in ti/drivers/ADCBuf.h should be
47  * called by the application, not the device specific implementation in
48  * ti/drivers/adcbuf/ADCBufCC26X2. The board file defines the device specific
49  * configuration and casting in the general API ensures the correct device
50  * specific functions are called. You should specify an
51  * ADCBufCC26X2_ParamsExtension in the custom field of the ADCBuf_Params that
52  * suits your application. The default settings work for many, but not all,
53  * use cases.
54  *
55  * # General Behavior #
56  * A timer and the DMA are used to trigger the ADC and fill a buffer in the
57  * background (in hardware) at a specified frequency. The application may
58  * execute other tasks while the hardware handles the conversions. In contrast
59  * to the standard ti/drivers/ADC driver, this driver allows for precise
60  * sampling of waveforms.
61  *
62  * | Driver | Number of samples needed in one call |
63  * |----------------|-----------------------------------------|
64  * | ADC.h | 1 |
65  * | ADCBuf.h | > 1 |
66  *
67  * This ADCBuf driver provides an API interface to using the analog-to-digital
68  * converter directly from the CM3 without going through the sensor controller.
69  * The sensor controller can still use the ADC, support for sharing the ADC
70  * resource between the sensor controller and the CM3 is built into the driver.
71  * There is a hardware semaphore that the driver must acquire before beginning
72  * any number of conversions. This same hardware semaphore also prevents the
73  * simultaneous use of this driver and the basic ADC driver.
74  *
75  * The ADC drivers supports making between one and 1024 measurements once or
76  * continuous measuring with returned buffer sizes between one and 1024
77  * measurements.
78  *
79  * The application should call ADCBuf_init() once by the application to set the
80  * isOpened flag to false, indicating that the driver is ready to use.
81  *
82  * The ADC driver is opened by calling ADCBuf_open() which will
83  * set up interrupts and configure the internal components of the driver.
84  * However, the ADC hardware or analog pins are not yet configured, since the
85  * sensor controller or basic ADC driver might be using the ADC.
86  *
87  * In order to perform an ADC conversion, the application should call
88  * ADCBuf_convert(). This call will request the ADC resource, configure the ADC,
89  * set up the DMA and GPTimer, and perform the requested ADC conversions on the
90  * selected DIO or internal signal. The DIO or internal signal is defined by the
91  * ADCBuf_Conversion structure in the application code and adcBufCC26x2Objects
92  * in the board file.
93  *
94  * @warning If the ADCBUF driver is setup in ADCBuf_RECURRENCE_MODE_CONTINUOUS
95  * mode, the user must assure that the provided callback function is
96  * completed before the next conversion completes. If the next
97  * conversion completes before the callback function finishes, the DMA
98  * will clobber the previous buffer with new data.
99  *
100  * If the sensor controller is using the ADC when the driver requests it at the
101  * start of the ADC_convert() call, the conversion will fail and return false.
102  * The ADC resource may be pre-acquired by calling the control function
103  * ADCBufCC26X2_CMD_ACQUIRE_ADC_SEMAPHORE. It will be released again
104  * automatically after the next conversion completes.
105  *
106  * In both ADCBufCC26X2_SAMPING_MODE_SYNCHRONOUS mode and
107  * ADCBufCC26X2_SAMPING_MODE_ASYNCHRONOUS mode, enough sampling time must be
108  * provided between conversions that each measurement may be completed before
109  * the next trigger arrives.
110  *
111  * @note The ADCBuf driver requires GPTimer0A to function correctly. It will
112  * be unavailable for other uses.
113  *
114  * # Supported ADC pins #
115  * Below is a table of the supported ADC IO pins for each package size, for both
116  * CC26x2 and CC13x2. It maps a DIO to its corresponding driverlib define for the
117  * CompBInput that it is hardwired to. This table can be used to create virtual
118  * channel entries in the ADCBufCC26X2_adcChannelLut table in the board file.
119  *
120  * | DIO | CC26x2 7x7 AUXIO CompBInput | CC13x2 7x7 AUXIO CompBInput
121  * |--------|-------------------------------|-------------------------------
122  * | 0 | No | No
123  * | 1 | No | No
124  * | 2 | No | No
125  * | 3 | No | No
126  * | 4 | No | No
127  * | 5 | No | No
128  * | 6 | No | No
129  * | 7 | No | No
130  * | 8 | No | No
131  * | 9 | No | No
132  * | 10 | No | No
133  * | 11 | No | No
134  * | 12 | No | No
135  * | 13 | No | No
136  * | 14 | No | No
137  * | 15-22 | No | No
138  * | 23 | ADC_COMPB_IN_AUXIO7 | ADC_COMPB_IN_AUXIO7
139  * | 24 | ADC_COMPB_IN_AUXIO6 | ADC_COMPB_IN_AUXIO6
140  * | 25 | ADC_COMPB_IN_AUXIO5 | ADC_COMPB_IN_AUXIO5
141  * | 26 | ADC_COMPB_IN_AUXIO4 | ADC_COMPB_IN_AUXIO4
142  * | 27 | ADC_COMPB_IN_AUXIO3 | ADC_COMPB_IN_AUXIO3
143  * | 28 | ADC_COMPB_IN_AUXIO2 | ADC_COMPB_IN_AUXIO2
144  * | 29 | ADC_COMPB_IN_AUXIO1 | ADC_COMPB_IN_AUXIO1
145  * | 30 | ADC_COMPB_IN_AUXIO0 | ADC_COMPB_IN_AUXIO0
146  *
147  * # Supported Internal Signals #
148  * Below is a table of internal signals that can be measured using the ADC.
149  * Since we are not connecting to a DIO, there is no DIO to internal signal mapping.
150  * The DIO field in the channel lookup table should be marked PIN_UNASSIGNED.
151  * This table can be used to create virtual channel entries in the
152  * ADCBufCC26X2_adcChannelLut table in the board file.
153  *
154  * | DIO | Internal Signal CompBInput |
155  * |--------------------|-------------------------------|
156  * | PIN_UNASSIGNED | ADC_COMPB_IN_DCOUPL |
157  * | PIN_UNASSIGNED | ADC_COMPB_IN_VSS |
158  * | PIN_UNASSIGNED | ADC_COMPB_IN_VDDS |
159  *
160  * # Error handling #
161  * The following errors may occur when opening the ADC without assertions enabled:
162  * - The ADC handle is already open.
163  *
164  * The following errors may occur when requesting an ADC conversion:
165  * - The ADC is currently already doing a conversion.
166  * - The ADC was not available (used by sensor controller or basic ADC).
167  *
168  *
169  * # Power Management #
170  * The TI-RTOS power management framework will try to put the device into the
171  * most power efficient mode whenever possible. Please see the technical
172  * reference manual for further details on each power mode.
173  *
174  * While converting, the ADCBufCC26X2 driver sets a power constraint to keep
175  * the device out of standby. When the conversion has finished, the power
176  * constraint is released. The driver also sets a dependency on the DMA to
177  * enable background transfers from the ADC FIFO to memory.
178  * The following statements are valid:
179  * - After ADCBuf_convert(): the device cannot enter standby.
180  * - After ADCBuf_convertCancel(): the device can enter standby again.
181  * - After a conversion finishes: the device can enter standby again.
182  *
183  *
184  * # Supported Functions #
185  * | API function | Description |
186  * |------------------------------------|-----------------------------------------------------------------------|
187  * | ADCBuf_init() | Initialize ADC driver |
188  * | ADCBuf_open() | Open the ADC driver and configure driver |
189  * | ADCBuf_convert() | Perform ADC conversion |
190  * | ADCBuf_convertCancel() | Cancel ongoing ADC conversion |
191  * | ADCBuf_close() | Close ADC driver |
192  * | ADCBuf_Params_init() | Initialise ADCBuf_Params structure to default values |
193  * | ADCBuf_getResolution() | Get the resolution of the ADC of the current device |
194  * | ADCBuf_adjustRawValues() | Adjust the values in a returned buffer for manufacturing tolerances |
195  * | ADCBuf_convertAdjustedToMicroVolts | Convert a buffer of adjusted values to microvolts |
196  * | ADCBuf_control() | Execute device specific functions |
197  *
198  *
199  * # Not Supported Functionality #
200  * - Performing conversions on multiple channels simultaneously is not supported.
201  * In other words, the parameter channelCount must always be set to 1 when
202  * calling ADCBuf_convert(). The ADC on CC26XX devices does not support
203  * time-division multiplexing of channels or pins in hardware.
204  *
205  * # Use Cases #
206  * ## Basic one-shot conversion #
207  * Perform one conversion on CONFIG_ADCCHANNEL_A1 in ::ADCBuf_RETURN_MODE_BLOCKING.
208  * @code
209  * #include <ti/drivers/ADCBuf.h>
210  *
211  * #define ADCBUFFERSIZE 100
212  *
213  * ADCBuf_Handle adcBufHandle;
214  * ADCBuf_Params adcBufParams;
215  * ADCBuf_Conversion blockingConversion;
216  * uint16_t sampleBufferOne[ADCBUFFERSIZE];
217  *
218  * ADCBuf_Params_init(&adcBufParams);
219  * adcBufHandle = ADCBuf_open(CONFIG_ADCBuf0, &adcBufParams);
220  * if (adcBufHandle == NULL) {
221  * // handle error
222  * }
223  *
224  * blockingConversion.arg = NULL;
225  * blockingConversion.adcChannel = CONFIG_ADCCHANNEL_A1;
226  * blockingConversion.sampleBuffer = sampleBufferOne;
227  * blockingConversion.sampleBufferTwo = NULL;
228  * blockingConversion.samplesRequestedCount = ADCBUFFERSIZE;
229  *
230  * if (ADCBuf_convert(adcBufHandle, &blockingConversion, 1) != ADCBuf_STATUS_SUCCESS) {
231  * // handle error
232  * }
233  * @endcode
234  *
235  * ## Using ADCBufCC26X2_ParamsExtension #
236  * This specific configuration performs one conversion on CONFIG_ADCCHANNEL_A1
237  * in ::ADCBuf_RETURN_MODE_BLOCKING. The custom parameters used here are
238  * identical to the defaults parameters. Users can of course define their own
239  * parameters.
240  * @code
241  * #include <ti/drivers/ADCBuf.h>
242  *
243  * #define ADCBUFFERSIZE 100
244  *
245  * ADCBuf_Handle adcBufHandle;
246  * ADCBuf_Params adcBufParams;
247  * ADCBuf_Conversion blockingConversion;
248  * uint16_t sampleBufferOne[ADCBUFFERSIZE];
249  * ADCBufCC26X2_ParamsExtension customParams;
250  *
251  * ADCBuf_Params_init(&adcBufParams);
252  * ADCBufCC26X2_ParamsExtension_init(&customParams);
253  * customParams.samplingDuration = ADCBufCC26X2_SAMPLING_DURATION_2P7_US;
254  * customParams.refSource = ADCBufCC26X2_FIXED_REFERENCE;
255  * customParams.samplingMode = ADCBufCC26X2_SAMPING_MODE_SYNCHRONOUS;
256  * customParams.inputScalingEnabled = true;
257  *
258  * adcBufParams.custom = &customParams;
259  *
260  * adcBufHandle = ADCBuf_open(CONFIG_ADCBuf0, &adcBufParams);
261  * if (adcBufHandle == NULL) {
262  * // handle error
263  * }
264  *
265  * blockingConversion.arg = NULL;
266  * blockingConversion.adcChannel = CONFIG_ADCCHANNEL_A1;
267  * blockingConversion.sampleBuffer = sampleBufferOne;
268  * blockingConversion.sampleBufferTwo = NULL;
269  * blockingConversion.samplesRequestedCount = ADCBUFFERSIZE;
270  *
271  * if (ADCBuf_convert(adcBufHandle, &blockingConversion, 1) != ADCBuf_STATUS_SUCCESS) {
272  * // handle error
273  * }
274  * @endcode
275  *
276  * # Instrumentation #
277  * The ADC driver interface produces log statements if instrumentation is
278  * enabled.
279  *
280  * Diagnostics Mask | Log details |
281  * ---------------- | ----------- |
282  * Diags_USER1 | basic ADCBuf operations performed |
283  * Diags_USER2 | detailed ADCBuf operations performed |
284  *
285  ******************************************************************************
286  */
287 
288 #ifndef ti_drivers_adc_adcbufcc26xx__include
289 #define ti_drivers_adc_adcbufcc26xx__include
290 
291 #include <stdint.h>
292 #include <stdbool.h>
293 
294 #include <ti/drivers/ADCBuf.h>
295 #include <ti/drivers/PIN.h>
299 #include <ti/drivers/Power.h>
301 
302 #include <ti/devices/DeviceFamily.h>
303 #include DeviceFamily_constructPath(driverlib/aux_adc.h)
304 
305 #include <ti/drivers/dpl/HwiP.h>
306 #include <ti/drivers/dpl/ClockP.h>
307 #include <ti/drivers/dpl/SemaphoreP.h>
308 #include <ti/drivers/dpl/SwiP.h>
309 
310 #ifdef __cplusplus
311 extern "C" {
312 #endif
313 
326 /* Add ADCBufCC26X2_CMD_* macros here */
327 
343 #define ADCBufCC26X2_CMD_ACQUIRE_ADC_SEMAPHORE ADCBuf_CMD_RESERVED + 1
344 
359 #define ADCBufCC26X2_CMD_KEEP_ADC_SEMAPHORE ADCBuf_CMD_RESERVED + 2
360 
369 #define ADCBufCC26X2_CMD_KEEP_ADC_SEMAPHORE_DISABLE ADCBuf_CMD_RESERVED + 3
370 
377 #define ADCBufCC26X2_CMD_RELEASE_ADC_SEMAPHORE ADCBuf_CMD_RESERVED + 4
378 
384 #define ADCBufCC26X2_RESOLUTION 12
385 
386 #define ADCBufCC26X2_BYTES_PER_SAMPLE 2
387 
388 /*
389  * =============================================================================
390  * Constants
391  * =============================================================================
392  */
393 
394 /* ADCBuf function table pointer */
396 
397 
398 /*
399  * =============================================================================
400  * Enumerations
401  * =============================================================================
402  */
403 
419 typedef enum {
423 
434 typedef enum {
435  ADCBufCC26X2_SAMPLING_DURATION_2P7_US = AUXADC_SAMPLE_TIME_2P7_US,
436  ADCBufCC26X2_SAMPLING_DURATION_5P3_US = AUXADC_SAMPLE_TIME_5P3_US,
437  ADCBufCC26X2_SAMPLING_DURATION_10P6_US = AUXADC_SAMPLE_TIME_10P6_US,
438  ADCBufCC26X2_SAMPLING_DURATION_21P3_US = AUXADC_SAMPLE_TIME_21P3_US,
439  ADCBufCC26X2_SAMPLING_DURATION_42P6_US = AUXADC_SAMPLE_TIME_42P6_US,
440  ADCBufCC26X2_SAMPLING_DURATION_85P3_US = AUXADC_SAMPLE_TIME_85P3_US,
441  ADCBufCC26X2_SAMPLING_DURATION_170_US = AUXADC_SAMPLE_TIME_170_US,
442  ADCBufCC26X2_SAMPLING_DURATION_341_US = AUXADC_SAMPLE_TIME_341_US,
443  ADCBufCC26X2_SAMPLING_DURATION_682_US = AUXADC_SAMPLE_TIME_682_US,
444  ADCBufCC26X2_SAMPLING_DURATION_1P37_MS = AUXADC_SAMPLE_TIME_1P37_MS,
445  ADCBufCC26X2_SAMPLING_DURATION_2P73_MS = AUXADC_SAMPLE_TIME_2P73_MS,
446  ADCBufCC26X2_SAMPLING_DURATION_5P46_MS = AUXADC_SAMPLE_TIME_5P46_MS,
447  ADCBufCC26X2_SAMPLING_DURATION_10P9_MS = AUXADC_SAMPLE_TIME_10P9_MS
449 
450 
483 typedef enum {
484  ADCBufCC26X2_FIXED_REFERENCE = AUXADC_REF_FIXED,
485  ADCBufCC26X2_VDDS_REFERENCE = AUXADC_REF_VDDS_REL
487 
488 
489 
490 /*
491  * =============================================================================
492  * Structs
493  * =============================================================================
494  */
495 
504 typedef struct{
505  uint8_t dio;
506  uint8_t compBInput;
508 
517 typedef struct{
519  ADCBufCC26X2_Sampling_Duration samplingDuration;
522  ADCBufCC26X2_Sampling_Mode samplingMode;
525  ADCBufCC26X2_Reference_Source refSource;
543 
562 typedef struct{
569  uint32_t swiPriority;
584  uint8_t intPriority;
590  uint8_t gpTimerUnit;
594 
595 
596 
602 typedef struct{
603  /* ADC control variables */
604  bool isOpen;
609  uint8_t currentChannel;
610  ADCBufCC26X2_Reference_Source refSource;
611  ADCBufCC26X2_Sampling_Mode samplingMode;
612  ADCBufCC26X2_Sampling_Duration samplingDuration;
616  uint16_t *activeSampleBuffer;
618  /* ADC SYS/BIOS objects */
619  HwiP_Struct hwi;
620  SwiP_Struct swi;
621  SemaphoreP_Struct conversionComplete;
625  /* PIN driver state object and handle */
629  /* UDMA driver handle */
632  /* GPTimer driver handle */
635  uint32_t semaphoreTimeout;
636  uint32_t samplingFrequency;
638 
639 /*
640  * =============================================================================
641  * Functions
642  * =============================================================================
643  */
644 
645 
646 #ifdef __cplusplus
647 }
648 #endif
649 
650 #endif /* ti_drivers_adc_ADCBufCC26XX__include */
Power manager interface for CC26X2.
ADCBufCC26X2 Hardware Attributes.
Definition: ADCBufCC26X2.h:562
Definition: ADCBufCC26X2.h:438
SemaphoreP_Struct conversionComplete
Definition: ADCBufCC26X2.h:621
Definition: ADCBufCC26X2.h:421
GPTimer driver implementation for CC26XX/CC13XX.
bool acquireADCSem
Definition: ADCBufCC26X2.h:592
Definition: ADCBufCC26X2.h:440
ADCBufCC26X2_Reference_Source refSource
Definition: ADCBufCC26X2.h:525
ADCBufCC26X2_AdcChannelLutEntry const * adcChannelLut
Definition: ADCBufCC26X2.h:587
uint32_t samplingFrequency
Definition: ADCBufCC26X2.h:636
ADCBuf_Recurrence_Mode recurrenceMode
Definition: ADCBufCC26X2.h:614
ADCBuf_Return_Mode returnMode
Definition: ADCBufCC26X2.h:615
Table entry that maps a virtual adc channel to a dio and its corresponding internal analogue signal...
Definition: ADCBufCC26X2.h:504
Power Manager.
Analog to Digital Conversion Buffer (ADCBuf) Input Driver.
UDMACC26XX Global configuration.
Definition: UDMACC26XX.h:222
PIN_State pinState
Definition: ADCBufCC26X2.h:626
HwiP_Struct hwi
Definition: ADCBufCC26X2.h:619
ADCBuf_Callback callbackFxn
Definition: ADCBufCC26X2.h:613
ADCBufCC26X2_Sampling_Mode samplingMode
Definition: ADCBufCC26X2.h:611
Definition: ADCBufCC26X2.h:437
uint8_t currentChannel
Definition: ADCBufCC26X2.h:609
Definition: ADCBufCC26X2.h:436
Definition: ADCBufCC26X2.h:420
PIN_Handle pinHandle
Definition: ADCBufCC26X2.h:627
ADCBufCC26X2_Sampling_Duration
Amount of time the ADC spends sampling the analogue input.
Definition: ADCBufCC26X2.h:434
Definition: ADCBufCC26X2.h:444
Device-specific pin & GPIO driver for CC26xx family [def].
ADCBufCC26X2_Sampling_Duration samplingDuration
Definition: ADCBufCC26X2.h:612
bool conversionInProgress
Definition: ADCBufCC26X2.h:605
Definition: ADCBufCC26X2.h:484
bool inputScalingEnabled
Definition: ADCBufCC26X2.h:541
ADCBufCC26X2_Reference_Source refSource
Definition: ADCBufCC26X2.h:610
uint8_t compBInput
Definition: ADCBufCC26X2.h:506
ADCBufCC26X2 Object.
Definition: ADCBufCC26X2.h:602
The definition of an ADCBuf function table that contains the required set of functions to control a s...
Definition: ADCBuf.h:600
UDMACC26XX driver implementation.
Definition: ADCBufCC26X2.h:442
CC26X2 specific extension to ADCBuf_Params.
Definition: ADCBufCC26X2.h:517
ADCBufCC26X2_Sampling_Duration samplingDuration
Definition: ADCBufCC26X2.h:519
ADCBuf_Conversion * currentConversion
Definition: ADCBufCC26X2.h:623
uint32_t semaphoreTimeout
Definition: ADCBufCC26X2.h:635
UDMACC26XX_Handle udmaHandle
Definition: ADCBufCC26X2.h:630
Definition: ADCBufCC26X2.h:441
uint8_t dio
Definition: ADCBufCC26X2.h:505
Definition: ADCBufCC26X2.h:443
GPTimer Global configuration.
Definition: GPTimerCC26XX.h:407
underlying data structure for type PIN_State
Definition: PIN.h:708
const ADCBuf_FxnTable ADCBufCC26X2_fxnTable
ADCBufCC26X2_Sampling_Mode samplingMode
Definition: ADCBufCC26X2.h:522
ADCBuf_Recurrence_Mode
Recurrence behavior of a ADCBuf_Conversion specified in the ADCBuf_Params.
Definition: ADCBuf.h:404
Definition: ADCBufCC26X2.h:439
ADCBuf_Return_Mode
Return behavior for ADCBuf_convert() specified in the ADCBuf_Params.
Definition: ADCBuf.h:446
GPTimerCC26XX_Handle timerHandle
Definition: ADCBufCC26X2.h:633
Definition: ADCBufCC26X2.h:485
Definition: ADCBufCC26X2.h:447
void(* ADCBuf_Callback)(ADCBuf_Handle handle, ADCBuf_Conversion *conversion, void *completedADCBuffer, uint32_t completedChannel)
The definition of a callback function.
Definition: ADCBuf.h:391
uint32_t swiPriority
ADC SWI priority. The higher the number, the higher the priority. The minimum is 0 and the maximum is...
Definition: ADCBufCC26X2.h:569
bool adcSemaphoreInPossession
Definition: ADCBufCC26X2.h:608
uint8_t intPriority
ADC peripheral&#39;s interrupt priority.
Definition: ADCBufCC26X2.h:584
Definition: ADCBufCC26X2.h:445
Defines a conversion to be used with ADCBuf_convert().
Definition: ADCBuf.h:315
struct ADCBufCC26X2_Object * ADCBufCC26X2_Handle
bool keepADCSemaphore
Definition: ADCBufCC26X2.h:607
Definition: ADCBufCC26X2.h:435
SwiP_Struct swi
Definition: ADCBufCC26X2.h:620
bool isOpen
Definition: ADCBufCC26X2.h:604
Definition: ADCBufCC26X2.h:446
bool inputScalingEnabled
Definition: ADCBufCC26X2.h:606
ADCBufCC26X2_Reference_Source
Specifies whether the internal reference of the ADC is sourced from the battery voltage or a fixed in...
Definition: ADCBufCC26X2.h:483
Generic PIN & GPIO driver.
uint16_t * activeSampleBuffer
Definition: ADCBufCC26X2.h:616
ADCBufCC26X2_Sampling_Mode
Specifies whether the internal reference of the ADC is sourced from the battery voltage or a fixed in...
Definition: ADCBufCC26X2.h:419
uint8_t gpTimerUnit
Definition: ADCBufCC26X2.h:590
© Copyright 1995-2019, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale