MSPM0L11XX_L13XX Driver Library  1.00.00.04
dl_adc12.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2020, 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 dl_adc12.h
34  * @brief Analog to Digital Converter (ADC)
35  * @defgroup ADC12 Analog to Digital Converter (ADC12)
36  *
37  * @anchor ti_dl_dl_adc12_Overview
38  * # Overview
39  *
40  * The Analog to Digital Converter Driver Library allows full configuration of
41  * the MSPM0 ADC module.
42  * The ADC is a high-performance successive-approximation-register (SAR)
43  * analog-to-digital converter.
44  *
45  * <hr>
46  ******************************************************************************/
50 #ifndef ti_dl_dl_adc12__include
51 #define ti_dl_dl_adc12__include
52 
53 #include <stdbool.h>
54 #include <stdint.h>
55 
56 #include <ti/devices/msp/msp.h>
57 #include <ti/driverlib/dl_common.h>
58 
59 #ifdef __MSPM0_HAS_ADC12__
60 
61 #ifdef __cplusplus
62 extern "C" {
63 #endif
64 
65 /* clang-format off */
66 
74 #define DL_ADC12_SEQ_END_ADDR_00 (ADC12_CTL2_ENDADD_ADDR_00)
75 
79 #define DL_ADC12_SEQ_END_ADDR_01 (ADC12_CTL2_ENDADD_ADDR_01)
80 
84 #define DL_ADC12_SEQ_END_ADDR_02 (ADC12_CTL2_ENDADD_ADDR_02)
85 
89 #define DL_ADC12_SEQ_END_ADDR_03 (ADC12_CTL2_ENDADD_ADDR_03)
90 
94 #define DL_ADC12_SEQ_END_ADDR_04 (ADC12_CTL2_ENDADD_ADDR_04)
95 
99 #define DL_ADC12_SEQ_END_ADDR_05 (ADC12_CTL2_ENDADD_ADDR_05)
100 
104 #define DL_ADC12_SEQ_END_ADDR_06 (ADC12_CTL2_ENDADD_ADDR_06)
105 
109 #define DL_ADC12_SEQ_END_ADDR_07 (ADC12_CTL2_ENDADD_ADDR_07)
110 
114 #define DL_ADC12_SEQ_END_ADDR_08 (ADC12_CTL2_ENDADD_ADDR_08)
115 
119 #define DL_ADC12_SEQ_END_ADDR_09 (ADC12_CTL2_ENDADD_ADDR_09)
120 
124 #define DL_ADC12_SEQ_END_ADDR_10 (ADC12_CTL2_ENDADD_ADDR_10)
125 
129 #define DL_ADC12_SEQ_END_ADDR_11 (ADC12_CTL2_ENDADD_ADDR_11)
130 
140 #define DL_ADC12_SEQ_START_ADDR_00 (ADC12_CTL2_STARTADD_ADDR_00)
141 
145 #define DL_ADC12_SEQ_START_ADDR_01 (ADC12_CTL2_STARTADD_ADDR_01)
146 
150 #define DL_ADC12_SEQ_START_ADDR_02 (ADC12_CTL2_STARTADD_ADDR_02)
151 
155 #define DL_ADC12_SEQ_START_ADDR_03 (ADC12_CTL2_STARTADD_ADDR_03)
156 
160 #define DL_ADC12_SEQ_START_ADDR_04 (ADC12_CTL2_STARTADD_ADDR_04)
161 
165 #define DL_ADC12_SEQ_START_ADDR_05 (ADC12_CTL2_STARTADD_ADDR_05)
166 
170 #define DL_ADC12_SEQ_START_ADDR_06 (ADC12_CTL2_STARTADD_ADDR_06)
171 
175 #define DL_ADC12_SEQ_START_ADDR_07 (ADC12_CTL2_STARTADD_ADDR_07)
176 
180 #define DL_ADC12_SEQ_START_ADDR_08 (ADC12_CTL2_STARTADD_ADDR_08)
181 
185 #define DL_ADC12_SEQ_START_ADDR_09 (ADC12_CTL2_STARTADD_ADDR_09)
186 
190 #define DL_ADC12_SEQ_START_ADDR_10 (ADC12_CTL2_STARTADD_ADDR_10)
191 
195 #define DL_ADC12_SEQ_START_ADDR_11 (ADC12_CTL2_STARTADD_ADDR_11)
196 
206 #define DL_ADC12_SAMP_MODE_SINGLE (ADC12_CTL1_CONSEQ_SINGLE)
207 
211 #define DL_ADC12_SAMP_MODE_SINGLE_REPEAT (ADC12_CTL1_CONSEQ_REPEATSINGLE)
212 
216 #define DL_ADC12_SAMP_MODE_SEQUENCE (ADC12_CTL1_CONSEQ_SEQUENCE)
217 
221 #define DL_ADC12_SAMP_MODE_SEQUENCE_REPEAT (ADC12_CTL1_CONSEQ_REPEATSEQUENCE)
222 
233 #define DL_ADC12_HW_AVG_NUM_ACC_DISABLED (ADC12_CTL1_AVGN_DISABLE)
234 
239 #define DL_ADC12_HW_AVG_NUM_ACC_2 (ADC12_CTL1_AVGN_AVG_2)
240 
245 #define DL_ADC12_HW_AVG_NUM_ACC_4 (ADC12_CTL1_AVGN_AVG_4)
246 
251 #define DL_ADC12_HW_AVG_NUM_ACC_8 (ADC12_CTL1_AVGN_AVG_8)
252 
257 #define DL_ADC12_HW_AVG_NUM_ACC_16 (ADC12_CTL1_AVGN_AVG_16)
258 
263 #define DL_ADC12_HW_AVG_NUM_ACC_32 (ADC12_CTL1_AVGN_AVG_32)
264 
269 #define DL_ADC12_HW_AVG_NUM_ACC_64 (ADC12_CTL1_AVGN_AVG_64)
270 
275 #define DL_ADC12_HW_AVG_NUM_ACC_128 (ADC12_CTL1_AVGN_AVG_128)
276 
286 #define DL_ADC12_HW_AVG_DEN_DIV_BY_1 (ADC12_CTL1_AVGD_SHIFT0)
287 
291 #define DL_ADC12_HW_AVG_DEN_DIV_BY_2 (ADC12_CTL1_AVGD_SHIFT1)
292 
296 #define DL_ADC12_HW_AVG_DEN_DIV_BY_4 (ADC12_CTL1_AVGD_SHIFT2)
297 
301 #define DL_ADC12_HW_AVG_DEN_DIV_BY_8 (ADC12_CTL1_AVGD_SHIFT3)
302 
306 #define DL_ADC12_HW_AVG_DEN_DIV_BY_16 (ADC12_CTL1_AVGD_SHIFT4)
307 
311 #define DL_ADC12_HW_AVG_DEN_DIV_BY_32 (ADC12_CTL1_AVGD_SHIFT5)
312 
316 #define DL_ADC12_HW_AVG_DEN_DIV_BY_64 (ADC12_CTL1_AVGD_SHIFT6)
317 
321 #define DL_ADC12_HW_AVG_DEN_DIV_BY_128 (ADC12_CTL1_AVGD_SHIFT7)
322 
332 #define DL_ADC12_POWER_DOWN_MODE_AUTO (ADC12_CTL0_PWRDN_AUTO)
333 
337 #define DL_ADC12_POWER_DOWN_MODE_MANUAL (ADC12_CTL0_PWRDN_MANUAL)
338 
347 #define DL_ADC12_INPUT_CHAN_0 (ADC12_MEMCTL_CHANSEL_CHAN_0)
348 
352 #define DL_ADC12_INPUT_CHAN_1 (ADC12_MEMCTL_CHANSEL_CHAN_1)
353 
357 #define DL_ADC12_INPUT_CHAN_2 (ADC12_MEMCTL_CHANSEL_CHAN_2)
358 
362 #define DL_ADC12_INPUT_CHAN_3 (ADC12_MEMCTL_CHANSEL_CHAN_3)
363 
367 #define DL_ADC12_INPUT_CHAN_4 (ADC12_MEMCTL_CHANSEL_CHAN_4)
368 
372 #define DL_ADC12_INPUT_CHAN_5 (ADC12_MEMCTL_CHANSEL_CHAN_5)
373 
377 #define DL_ADC12_INPUT_CHAN_6 (ADC12_MEMCTL_CHANSEL_CHAN_6)
378 
382 #define DL_ADC12_INPUT_CHAN_7 (ADC12_MEMCTL_CHANSEL_CHAN_7)
383 
387 #define DL_ADC12_INPUT_CHAN_8 (ADC12_MEMCTL_CHANSEL_CHAN_8)
388 
392 #define DL_ADC12_INPUT_CHAN_9 (ADC12_MEMCTL_CHANSEL_CHAN_9)
393 
397 #define DL_ADC12_INPUT_CHAN_10 (ADC12_MEMCTL_CHANSEL_CHAN_10)
398 
402 #define DL_ADC12_INPUT_CHAN_11 (ADC12_MEMCTL_CHANSEL_CHAN_11)
403 
407 #define DL_ADC12_INPUT_CHAN_12 (ADC12_MEMCTL_CHANSEL_CHAN_12)
408 
412 #define DL_ADC12_INPUT_CHAN_13 (ADC12_MEMCTL_CHANSEL_CHAN_13)
413 
417 #define DL_ADC12_INPUT_CHAN_14 (ADC12_MEMCTL_CHANSEL_CHAN_14)
418 
422 #define DL_ADC12_INPUT_CHAN_15 (ADC12_MEMCTL_CHANSEL_CHAN_15)
423 
433 #define DL_ADC12_REFERENCE_VOLTAGE_VDDA (ADC12_MEMCTL_VRSEL_VDDA)
434 
438 #define DL_ADC12_REFERENCE_VOLTAGE_EXTREF (ADC12_MEMCTL_VRSEL_EXTREF)
439 
443 #define DL_ADC12_REFERENCE_VOLTAGE_INTREF (ADC12_MEMCTL_VRSEL_INTREF)
444 
454 #define DL_ADC12_SAMPLE_TIMER_SOURCE_SCOMP0 (ADC12_MEMCTL_STIME_SEL_SCOMP0)
455 
459 #define DL_ADC12_SAMPLE_TIMER_SOURCE_SCOMP1 (ADC12_MEMCTL_STIME_SEL_SCOMP1)
460 
470 #define DL_ADC12_AVERAGING_MODE_ENABLED (ADC12_MEMCTL_AVGEN_ENABLE)
471 
475 #define DL_ADC12_AVERAGING_MODE_DISABLED (ADC12_MEMCTL_AVGEN_DISABLE)
476 
486 #define DL_ADC12_BURN_OUT_SOURCE_ENABLED (ADC12_MEMCTL_BCSEN_ENABLE)
487 
491 #define DL_ADC12_BURN_OUT_SOURCE_DISABLED (ADC12_MEMCTL_BCSEN_DISABLE)
492 
502 #define DL_ADC12_TRIGGER_MODE_AUTO_NEXT (ADC12_MEMCTL_TRIG_AUTO_NEXT)
503 
507 #define DL_ADC12_TRIGGER_MODE_TRIGGER_NEXT (ADC12_MEMCTL_TRIG_TRIGGER_NEXT)
508 
518 #define DL_ADC12_WINDOWS_COMP_MODE_ENABLED (ADC12_MEMCTL_WINCOMP_ENABLE)
519 
523 #define DL_ADC12_WINDOWS_COMP_MODE_DISABLED (ADC12_MEMCTL_WINCOMP_DISABLE)
524 
534 #define DL_ADC12_STATUS_CONVERSION_ACTIVE (ADC12_STATUS_BUSY_ACTIVE)
535 
539 #define DL_ADC12_STATUS_CONVERSION_IDLE (ADC12_STATUS_BUSY_IDLE)
540 
550 #define DL_ADC12_STATUS_REFERENCE_READY (ADC12_STATUS_REFBUFRDY_READY)
551 
555 #define DL_ADC12_STATUS_REFERENCE_NOTREADY (ADC12_STATUS_REFBUFRDY_NOTREADY)
556 
566 #define DL_ADC12_INTERRUPT_OVERFLOW (ADC12_INT_EVENT0_IMASK_OVIFG_SET)
567 
571 #define DL_ADC12_INTERRUPT_TRIG_OVF (ADC12_INT_EVENT0_IMASK_TOVIFG_SET)
572 
576 #define DL_ADC12_INTERRUPT_WINDOW_COMP_HIGH (ADC12_INT_EVENT0_IMASK_HIGHIFG_SET)
577 
581 #define DL_ADC12_INTERRUPT_WINDOW_COMP_LOW (ADC12_INT_EVENT0_IMASK_LOWIFG_SET)
582 
587 #define DL_ADC12_INTERRUPT_INIFG (ADC12_INT_EVENT0_IMASK_INIFG_SET)
588 
592 #define DL_ADC12_INTERRUPT_DMA_DONE (ADC12_INT_EVENT0_IMASK_DMADONE_SET)
593 
597 #define DL_ADC12_INTERRUPT_UNDERFLOW (ADC12_INT_EVENT0_IMASK_UVIFG_SET)
598 
602 #define DL_ADC12_INTERRUPT_MEM0_RESULT_LOADED \
603  (ADC12_INT_EVENT0_IMASK_MEMRESIFG0_SET)
604 
608 #define DL_ADC12_INTERRUPT_MEM1_RESULT_LOADED \
609  (ADC12_INT_EVENT0_IMASK_MEMRESIFG1_SET)
610 
614 #define DL_ADC12_INTERRUPT_MEM2_RESULT_LOADED \
615  (ADC12_INT_EVENT0_IMASK_MEMRESIFG2_SET)
616 
620 #define DL_ADC12_INTERRUPT_MEM3_RESULT_LOADED \
621  (ADC12_INT_EVENT0_IMASK_MEMRESIFG3_SET)
622 
626 #define DL_ADC12_INTERRUPT_MEM4_RESULT_LOADED \
627  (ADC12_INT_EVENT0_IMASK_MEMRESIFG4_SET)
628 
632 #define DL_ADC12_INTERRUPT_MEM5_RESULT_LOADED \
633  (ADC12_INT_EVENT0_IMASK_MEMRESIFG5_SET)
634 
638 #define DL_ADC12_INTERRUPT_MEM6_RESULT_LOADED \
639  (ADC12_INT_EVENT0_IMASK_MEMRESIFG6_SET)
640 
644 #define DL_ADC12_INTERRUPT_MEM7_RESULT_LOADED \
645  (ADC12_INT_EVENT0_IMASK_MEMRESIFG7_SET)
646 
650 #define DL_ADC12_INTERRUPT_MEM8_RESULT_LOADED \
651  (ADC12_INT_EVENT0_IMASK_MEMRESIFG8_SET)
652 
656 #define DL_ADC12_INTERRUPT_MEM9_RESULT_LOADED \
657  (ADC12_INT_EVENT0_IMASK_MEMRESIFG9_SET)
658 
662 #define DL_ADC12_INTERRUPT_MEM10_RESULT_LOADED \
663  (ADC12_INT_EVENT0_IMASK_MEMRESIFG10_SET)
664 
668 #define DL_ADC12_INTERRUPT_MEM11_RESULT_LOADED \
669  (ADC12_INT_EVENT0_IMASK_MEMRESIFG11_SET)
670 
680 #define DL_ADC12_EVENT_WINDOW_COMP_HIGH (ADC12_INT_EVENT1_IMASK_HIGHIFG_SET)
681 
685 #define DL_ADC12_EVENT_WINDOW_COMP_LOW (ADC12_INT_EVENT1_IMASK_LOWIFG_SET)
686 
690 #define DL_ADC12_EVENT_INIFG (ADC12_INT_EVENT1_IMASK_INIFG_SET)
691 
695 #define DL_ADC12_EVENT_MEM0_RESULT_LOADED \
696  (ADC12_INT_EVENT1_IMASK_MEMRESIFG0_SET)
697 
707 #define DL_ADC12_DMA_MEM0_RESULT_LOADED (ADC12_INT_EVENT2_IMASK_MEMRESIFG0_SET)
708 
712 #define DL_ADC12_DMA_MEM1_RESULT_LOADED (ADC12_INT_EVENT2_IMASK_MEMRESIFG1_SET)
713 
717 #define DL_ADC12_DMA_MEM2_RESULT_LOADED (ADC12_INT_EVENT2_IMASK_MEMRESIFG2_SET)
718 
722 #define DL_ADC12_DMA_MEM3_RESULT_LOADED (ADC12_INT_EVENT2_IMASK_MEMRESIFG3_SET)
723 
727 #define DL_ADC12_DMA_MEM4_RESULT_LOADED (ADC12_INT_EVENT2_IMASK_MEMRESIFG4_SET)
728 
732 #define DL_ADC12_DMA_MEM5_RESULT_LOADED (ADC12_INT_EVENT2_IMASK_MEMRESIFG5_SET)
733 
737 #define DL_ADC12_DMA_MEM6_RESULT_LOADED (ADC12_INT_EVENT2_IMASK_MEMRESIFG6_SET)
738 
742 #define DL_ADC12_DMA_MEM7_RESULT_LOADED (ADC12_INT_EVENT2_IMASK_MEMRESIFG7_SET)
743 
747 #define DL_ADC12_DMA_MEM8_RESULT_LOADED (ADC12_INT_EVENT2_IMASK_MEMRESIFG8_SET)
748 
752 #define DL_ADC12_DMA_MEM9_RESULT_LOADED (ADC12_INT_EVENT2_IMASK_MEMRESIFG9_SET)
753 
757 #define DL_ADC12_DMA_MEM10_RESULT_LOADED \
758  (ADC12_INT_EVENT2_IMASK_MEMRESIFG10_SET)
759 
763 #define DL_ADC12_DMA_MEM11_RESULT_LOADED \
764  (ADC12_INT_EVENT2_IMASK_MEMRESIFG11_SET)
765 
772 #define DL_ADC12_SVT_OFFSET ((uint32_t)0x555000 >> (uint32_t)2)
773 
774 /* clang-format on */
775 
777 typedef enum {
778 
781 
784 
787 
790 
793 
796 
799 
802 
805 
808 
811 
814 
816 
818 typedef enum {
819 
821  DL_ADC12_REPEAT_MODE_ENABLED = ADC12_CTL1_CONSEQ_REPEATSINGLE,
822 
824  DL_ADC12_REPEAT_MODE_DISABLED = ADC12_CTL1_CONSEQ_SINGLE
825 
827 
829 typedef enum {
831  DL_ADC12_SAMPLING_SOURCE_AUTO = ADC12_CTL1_SAMPMODE_AUTO,
832 
834  DL_ADC12_SAMPLING_SOURCE_MANUAL = ADC12_CTL1_SAMPMODE_MANUAL
836 
838 typedef enum {
840  DL_ADC12_TRIG_SRC_SOFTWARE = ADC12_CTL1_TRIGSRC_SOFTWARE,
841 
843  DL_ADC12_TRIG_SRC_EVENT = ADC12_CTL1_TRIGSRC_EVENT
844 
846 
848 typedef enum {
850  DL_ADC12_SAMP_CONV_RES_12_BIT = ADC12_CTL2_RES_BIT_12,
852  DL_ADC12_SAMP_CONV_RES_10_BIT = ADC12_CTL2_RES_BIT_10,
854  DL_ADC12_SAMP_CONV_RES_8_BIT = ADC12_CTL2_RES_BIT_8
856 
858 typedef enum {
860  DL_ADC12_SAMP_CONV_DATA_FORMAT_UNSIGNED = ADC12_CTL2_DF_UNSIGNED,
861 
864 
866 
868 typedef enum {
870  DL_ADC12_IIDX_OVERFLOW = ADC12_INT_EVENT0_IIDX_STAT_OVIFG,
871 
873  DL_ADC12_IIDX_TRIG_OVERFLOW = ADC12_INT_EVENT0_IIDX_STAT_TOVIFG,
874 
877  DL_ADC12_IIDX_WINDOW_COMP_HIGH = ADC12_INT_EVENT0_IIDX_STAT_HIGHIFG,
878 
881  DL_ADC12_IIDX_WINDOW_COMP_LOW = ADC12_INT_EVENT0_IIDX_STAT_LOWIFG,
882 
884  DL_ADC12_IIDX_INIFG = ADC12_INT_EVENT0_IIDX_STAT_INIFG,
885 
887  DL_ADC12_IIDX_DMA_DONE = ADC12_INT_EVENT0_IIDX_STAT_DMADONE,
888 
890  DL_ADC12_IIDX_UNDERFLOW = ADC12_INT_EVENT0_IIDX_STAT_UVIFG,
891 
893  DL_ADC12_IIDX_MEM0_RESULT_LOADED = ADC12_INT_EVENT0_IIDX_STAT_MEMRESIFG0,
894 
896  DL_ADC12_IIDX_MEM1_RESULT_LOADED = ADC12_INT_EVENT0_IIDX_STAT_MEMRESIFG1,
897 
899  DL_ADC12_IIDX_MEM2_RESULT_LOADED = ADC12_INT_EVENT0_IIDX_STAT_MEMRESIFG2,
900 
902  DL_ADC12_IIDX_MEM3_RESULT_LOADED = ADC12_INT_EVENT0_IIDX_STAT_MEMRESIFG3,
903 
905  DL_ADC12_IIDX_MEM4_RESULT_LOADED = ADC12_INT_EVENT0_IIDX_STAT_MEMRESIFG4,
906 
908  DL_ADC12_IIDX_MEM5_RESULT_LOADED = ADC12_INT_EVENT0_IIDX_STAT_MEMRESIFG5,
909 
911  DL_ADC12_IIDX_MEM6_RESULT_LOADED = ADC12_INT_EVENT0_IIDX_STAT_MEMRESIFG6,
912 
914  DL_ADC12_IIDX_MEM7_RESULT_LOADED = ADC12_INT_EVENT0_IIDX_STAT_MEMRESIFG7,
915 
917  DL_ADC12_IIDX_MEM8_RESULT_LOADED = ADC12_INT_EVENT0_IIDX_STAT_MEMRESIFG8,
918 
920  DL_ADC12_IIDX_MEM9_RESULT_LOADED = ADC12_INT_EVENT0_IIDX_STAT_MEMRESIFG9,
921 
923  DL_ADC12_IIDX_MEM10_RESULT_LOADED = ADC12_INT_EVENT0_IIDX_STAT_MEMRESIFG10,
924 
926  DL_ADC12_IIDX_MEM11_RESULT_LOADED = ADC12_INT_EVENT0_IIDX_STAT_MEMRESIFG11,
927 } DL_ADC12_IIDX;
928 
929 /* clang-format on */
931 typedef enum {
933  DL_ADC12_CLOCK_SYSOSC = ADC12_CLKCFG_SAMPCLK_SYSOSC,
935  DL_ADC12_CLOCK_ULPCLK = ADC12_CLKCFG_SAMPCLK_ULPCLK,
937  DL_ADC12_CLOCK_HFCLK = ADC12_CLKCFG_SAMPCLK_HFCLK,
939 
941 typedef enum {
942 
944  DL_ADC12_CLOCK_DIVIDE_1 = ADC12_CTL0_SCLKDIV_DIV_BY_1,
945 
947  DL_ADC12_CLOCK_DIVIDE_2 = ADC12_CTL0_SCLKDIV_DIV_BY_2,
948 
950  DL_ADC12_CLOCK_DIVIDE_4 = ADC12_CTL0_SCLKDIV_DIV_BY_4,
951 
953  DL_ADC12_CLOCK_DIVIDE_8 = ADC12_CTL0_SCLKDIV_DIV_BY_8,
954 
956  DL_ADC12_CLOCK_DIVIDE_16 = ADC12_CTL0_SCLKDIV_DIV_BY_16,
957 
959  DL_ADC12_CLOCK_DIVIDE_24 = ADC12_CTL0_SCLKDIV_DIV_BY_24,
960 
962  DL_ADC12_CLOCK_DIVIDE_32 = ADC12_CTL0_SCLKDIV_DIV_BY_32,
963 
965  DL_ADC12_CLOCK_DIVIDE_48 = ADC12_CTL0_SCLKDIV_DIV_BY_48,
966 
968 
970 typedef enum {
972  DL_ADC12_CLOCK_FREQ_RANGE_1_TO_4 = ADC12_CLKFREQ_FRANGE_RANGE1TO4,
973 
975  DL_ADC12_CLOCK_FREQ_RANGE_4_TO_8 = ADC12_CLKFREQ_FRANGE_RANGE4TO8,
976 
978  DL_ADC12_CLOCK_FREQ_RANGE_8_TO_16 = ADC12_CLKFREQ_FRANGE_RANGE8TO16,
979 
981  DL_ADC12_CLOCK_FREQ_RANGE_16_TO_20 = ADC12_CLKFREQ_FRANGE_RANGE16TO20,
982 
984  DL_ADC12_CLOCK_FREQ_RANGE_20_TO_24 = ADC12_CLKFREQ_FRANGE_RANGE20TO24,
985 
987  DL_ADC12_CLOCK_FREQ_RANGE_24_TO_32 = ADC12_CLKFREQ_FRANGE_RANGE24TO32,
988 
990  DL_ADC12_CLOCK_FREQ_RANGE_32_TO_40 = ADC12_CLKFREQ_FRANGE_RANGE32TO40,
991 
993  DL_ADC12_CLOCK_FREQ_RANGE_40_TO_48 = ADC12_CLKFREQ_FRANGE_RANGE40TO48,
994 
996 
1000 typedef struct {
1003  DL_ADC12_CLOCK clockSel;
1006  DL_ADC12_CLOCK_FREQ_RANGE freqRange;
1009  DL_ADC12_CLOCK_DIVIDE divideRatio;
1011 
1017 __STATIC_INLINE void DL_ADC12_enablePower(ADC12_Regs *adc12)
1018 {
1019  adc12->ULLMEM.GPRCM.PWREN =
1020  (ADC12_PWREN_KEY_UNLOCK_W | ADC12_PWREN_ENABLE_ENABLE);
1021 }
1022 
1028 __STATIC_INLINE void DL_ADC12_disablePower(ADC12_Regs *adc12)
1029 {
1030  adc12->ULLMEM.GPRCM.PWREN =
1031  (ADC12_PWREN_KEY_UNLOCK_W | ADC12_PWREN_ENABLE_DISABLE);
1032 }
1033 
1042 __STATIC_INLINE bool DL_ADC12_isPowerEnabled(ADC12_Regs *adc12)
1043 {
1044  return ((adc12->ULLMEM.GPRCM.PWREN & ADC12_PWREN_ENABLE_MASK) ==
1045  ADC12_PWREN_ENABLE_ENABLE);
1046 }
1047 
1053 __STATIC_INLINE void DL_ADC12_reset(ADC12_Regs *adc12)
1054 {
1055  adc12->ULLMEM.GPRCM.RSTCTL =
1056  (ADC12_RSTCTL_KEY_UNLOCK_W | ADC12_RSTCTL_RESETSTKYCLR_CLR |
1057  ADC12_RSTCTL_RESETASSERT_ASSERT);
1058 }
1059 
1069 __STATIC_INLINE bool DL_ADC12_isReset(ADC12_Regs *adc12)
1070 {
1071  return ((adc12->ULLMEM.GPRCM.STAT & ADC12_STAT_RESETSTKY_MASK) ==
1072  ADC12_STAT_RESETSTKY_RESET);
1073 }
1074 
1095 __STATIC_INLINE void DL_ADC12_initSingleSample(ADC12_Regs *adc12,
1096  uint32_t repeatMode, uint32_t sampleMode, uint32_t trigSrc,
1097  uint32_t resolution, uint32_t dataFormat)
1098 {
1099  DL_Common_updateReg(&adc12->ULLMEM.CTL1,
1100  (repeatMode | sampleMode | trigSrc),
1101  (ADC12_CTL1_SAMPMODE_MASK | ADC12_CTL1_CONSEQ_MASK |
1102  ADC12_CTL1_TRIGSRC_MASK));
1103 
1104  DL_Common_updateReg(&adc12->ULLMEM.CTL2,
1105  (ADC12_CTL2_STARTADD_ADDR_00 | ADC12_CTL2_ENDADD_ADDR_00 | resolution |
1106  dataFormat),
1107  (ADC12_CTL2_STARTADD_MASK | ADC12_CTL2_ENDADD_MASK |
1108  ADC12_CTL2_RES_MASK | ADC12_CTL2_DF_MASK));
1109 }
1110 
1123 __STATIC_INLINE void DL_ADC12_setStartAddress(
1124  ADC12_Regs *adc12, uint32_t startAdd)
1125 {
1127  &adc12->ULLMEM.CTL2, startAdd, ADC12_CTL2_STARTADD_MASK);
1128 }
1129 
1138 __STATIC_INLINE uint32_t DL_ADC12_getStartAddress(ADC12_Regs *adc12)
1139 {
1140  return (adc12->ULLMEM.CTL2 & ADC12_CTL2_STARTADD_MASK);
1141 }
1142 
1152 __STATIC_INLINE void DL_ADC12_setEndAddress(ADC12_Regs *adc12, uint32_t endAdd)
1153 {
1154  DL_Common_updateReg(&adc12->ULLMEM.CTL2, endAdd, ADC12_CTL2_ENDADD_MASK);
1155 }
1156 
1165 __STATIC_INLINE uint32_t DL_ADC12_getEndAddress(ADC12_Regs *adc12)
1166 {
1167  return (adc12->ULLMEM.CTL2 & ADC12_CTL2_ENDADD_MASK);
1168 }
1169 
1189 __STATIC_INLINE void DL_ADC12_initSeqSample(ADC12_Regs *adc12,
1190  uint32_t repeatMode, uint32_t sampleMode, uint32_t trigSrc,
1191  uint32_t startAdd, uint32_t endAdd, uint32_t resolution,
1192  uint32_t dataFormat)
1193 {
1194  DL_Common_updateReg(&adc12->ULLMEM.CTL1,
1195  (ADC12_CTL1_CONSEQ_SEQUENCE | repeatMode | sampleMode | trigSrc),
1196  (ADC12_CTL1_SAMPMODE_MASK | ADC12_CTL1_CONSEQ_MASK |
1197  ADC12_CTL1_TRIGSRC_MASK));
1198 
1199  DL_Common_updateReg(&adc12->ULLMEM.CTL2,
1200  (startAdd | endAdd | resolution | dataFormat),
1201  (ADC12_CTL2_ENDADD_MASK | ADC12_CTL2_STARTADD_MASK |
1202  ADC12_CTL2_RES_MASK | ADC12_CTL2_DF_MASK));
1203 }
1204 
1212 __STATIC_INLINE uint32_t DL_ADC12_getResolution(ADC12_Regs *adc12)
1213 {
1214  return (adc12->ULLMEM.CTL2 & ADC12_CTL2_RES_MASK);
1215 }
1216 
1224 __STATIC_INLINE uint32_t DL_ADC12_getDataFormat(ADC12_Regs *adc12)
1225 {
1226  return (adc12->ULLMEM.CTL2 & ADC12_CTL2_DF_MASK);
1227 }
1228 
1236 __STATIC_INLINE uint32_t DL_ADC12_getSamplingSource(ADC12_Regs *adc12)
1237 {
1238  return (adc12->ULLMEM.CTL1 & ADC12_CTL1_SAMPMODE_MASK);
1239 }
1240 
1248 __STATIC_INLINE uint32_t DL_ADC12_getSampleMode(ADC12_Regs *adc12)
1249 {
1250  return (adc12->ULLMEM.CTL1 & ADC12_CTL1_CONSEQ_MASK);
1251 }
1252 
1260 __STATIC_INLINE DL_ADC12_TRIG_SRC DL_ADC12_getTriggerSource(ADC12_Regs *adc12)
1261 {
1262  uint32_t trigSrc = adc12->ULLMEM.CTL1 & ADC12_CTL1_TRIGSRC_MASK;
1263 
1264  return (DL_ADC12_TRIG_SRC)(trigSrc);
1265 }
1266 
1272 __STATIC_INLINE void DL_ADC12_startConversion(ADC12_Regs *adc12)
1273 {
1274  adc12->ULLMEM.CTL1 |= (ADC12_CTL1_SC_START);
1275 }
1276 
1282 __STATIC_INLINE void DL_ADC12_stopConversion(ADC12_Regs *adc12)
1283 {
1284  adc12->ULLMEM.CTL1 &= ~(ADC12_CTL1_SC_START);
1285 }
1286 
1297 __STATIC_INLINE bool DL_ADC12_isConversionStarted(ADC12_Regs *adc12)
1298 {
1299  return ((adc12->ULLMEM.CTL1 & ADC12_CTL1_SC_MASK) == ADC12_CTL1_SC_START);
1300 }
1301 
1307 __STATIC_INLINE void DL_ADC12_enableDMA(ADC12_Regs *adc12)
1308 {
1309  adc12->ULLMEM.CTL2 |= (ADC12_CTL2_DMAEN_ENABLE);
1310 }
1311 
1317 __STATIC_INLINE void DL_ADC12_disableDMA(ADC12_Regs *adc12)
1318 {
1319  adc12->ULLMEM.CTL2 &= ~(ADC12_CTL2_DMAEN_ENABLE);
1320 }
1321 
1332 __STATIC_INLINE bool DL_ADC12_isDMAEnabled(ADC12_Regs *adc12)
1333 {
1334  return ((adc12->ULLMEM.CTL2 & ADC12_CTL2_DMAEN_ENABLE) ==
1335  ADC12_CTL2_DMAEN_ENABLE);
1336 }
1337 
1346 __STATIC_INLINE void DL_ADC12_setDMASamplesCnt(
1347  ADC12_Regs *adc12, uint8_t sampCnt)
1348 {
1349  DL_Common_updateReg(&adc12->ULLMEM.CTL2, (((uint32_t) sampCnt) << 11),
1350  ADC12_CTL2_SAMPCNT_MASK);
1351 }
1352 
1360 __STATIC_INLINE uint8_t DL_ADC12_getDMASampleCnt(ADC12_Regs *adc12)
1361 {
1362  return (uint8_t)((adc12->ULLMEM.CTL2 & ADC12_CTL2_SAMPCNT_MASK) >> 11);
1363 }
1364 
1370 __STATIC_INLINE void DL_ADC12_enableFIFO(ADC12_Regs *adc12)
1371 {
1372  adc12->ULLMEM.CTL2 |= (ADC12_CTL2_FIFOEN_ENABLE);
1373 }
1374 
1381 __STATIC_INLINE void DL_ADC12_disableFIFO(ADC12_Regs *adc12)
1382 {
1383  adc12->ULLMEM.CTL2 &= ~(ADC12_CTL2_FIFOEN_ENABLE);
1384 }
1385 
1397 __STATIC_INLINE bool DL_ADC12_isFIFOEnabled(ADC12_Regs *adc12)
1398 {
1399  return ((adc12->ULLMEM.CTL2 & ADC12_CTL2_FIFOEN_MASK) ==
1400  ADC12_CTL2_FIFOEN_ENABLE);
1401 }
1402 
1410 void DL_ADC12_setClockConfig(ADC12_Regs *adc12, DL_ADC12_ClockConfig *config);
1411 
1419 void DL_ADC12_getClockConfig(ADC12_Regs *adc12, DL_ADC12_ClockConfig *config);
1420 
1428 __STATIC_INLINE void DL_ADC12_setPowerDownMode(
1429  ADC12_Regs *adc12, uint32_t powerDownMode)
1430 {
1432  &adc12->ULLMEM.CTL0, powerDownMode, ADC12_CTL0_PWRDN_MASK);
1433 }
1434 
1444 __STATIC_INLINE uint32_t DL_ADC12_getPowerDownMode(ADC12_Regs *adc12)
1445 {
1446  return (adc12->ULLMEM.CTL0 & ADC12_CTL0_PWRDN_MASK);
1447 }
1448 
1454 __STATIC_INLINE void DL_ADC12_enableConversions(ADC12_Regs *adc12)
1455 {
1456  adc12->ULLMEM.CTL0 |= (ADC12_CTL0_ENC_ON);
1457 }
1458 
1464 __STATIC_INLINE void DL_ADC12_disableConversions(ADC12_Regs *adc12)
1465 {
1466  adc12->ULLMEM.CTL0 &= ~(ADC12_CTL0_ENC_ON);
1467 }
1468 
1480 __STATIC_INLINE bool DL_ADC12_isConversionsEnabled(ADC12_Regs *adc12)
1481 {
1482  return ((adc12->ULLMEM.CTL0 & ADC12_CTL0_ENC_MASK) == ADC12_CTL0_ENC_ON);
1483 }
1484 
1494 __STATIC_INLINE void DL_ADC12_configHwAverage(
1495  ADC12_Regs *adc12, uint32_t numerator, uint32_t denominator)
1496 {
1497  DL_Common_updateReg(&adc12->ULLMEM.CTL1, (numerator | denominator),
1498  (ADC12_CTL1_AVGN_MASK | ADC12_CTL1_AVGD_MASK));
1499 }
1500 
1508 __STATIC_INLINE uint32_t DL_ADC12_getHwAverageConfig(ADC12_Regs *adc12)
1509 {
1510  return (
1511  adc12->ULLMEM.CTL1 & (ADC12_CTL1_AVGN_MASK | ADC12_CTL1_AVGD_MASK));
1512 }
1513 
1522 __STATIC_INLINE void DL_ADC12_setSampleTime0(
1523  ADC12_Regs *adc12, uint16_t adcclks)
1524 {
1525  adc12->ULLMEM.SCOMP0 = (adcclks);
1526 }
1527 
1535 __STATIC_INLINE uint16_t DL_ADC12_getSampleTime0(ADC12_Regs *adc12)
1536 {
1537  return (uint16_t)(adc12->ULLMEM.SCOMP0 + (uint32_t) 1);
1538 }
1539 
1548 __STATIC_INLINE void DL_ADC12_setSampleTime1(
1549  ADC12_Regs *adc12, uint16_t adcclks)
1550 {
1551  adc12->ULLMEM.SCOMP1 = (adcclks);
1552 }
1553 
1561 __STATIC_INLINE uint16_t DL_ADC12_getSampleTime1(ADC12_Regs *adc12)
1562 {
1563  return (uint16_t)(adc12->ULLMEM.SCOMP1 + (uint32_t) 1);
1564 }
1565 
1575 __STATIC_INLINE void DL_ADC12_configWinCompLowThld(
1576  ADC12_Regs *adc12, uint16_t threshold)
1577 {
1578  adc12->ULLMEM.WCLOW = (threshold);
1579 }
1580 
1590 __STATIC_INLINE void DL_ADC12_configWinCompHighThld(
1591  ADC12_Regs *adc12, uint16_t threshold)
1592 {
1593  adc12->ULLMEM.WCHIGH = (threshold);
1594 }
1595 
1603 __STATIC_INLINE uint32_t DL_ADC12_getFIFOData(ADC12_Regs *adc12)
1604 {
1605  volatile const uint32_t *pReg = &adc12->ULLMEM.FIFODATA;
1606 
1607  return (uint32_t)(*(pReg + DL_ADC12_SVT_OFFSET));
1608 }
1609 
1617 __STATIC_INLINE uint32_t DL_ADC12_getFIFOAddress(ADC12_Regs *adc12)
1618 {
1619  return ((uint32_t)(&adc12->ULLMEM.FIFODATA + DL_ADC12_SVT_OFFSET));
1620 }
1621 
1641 __STATIC_INLINE void DL_ADC12_configConversionMem(ADC12_Regs *adc12,
1642  DL_ADC12_MEM_IDX idx, uint32_t chansel, uint32_t vref, uint32_t stime,
1643  uint32_t avgen, uint32_t bcsen, uint32_t trig, uint32_t wincomp)
1644 {
1645  adc12->ULLMEM.MEMCTL[idx] =
1646  (chansel | vref | stime | avgen | bcsen | trig | wincomp);
1647 }
1648 
1660 __STATIC_INLINE uint32_t DL_ADC12_getConversionMemConfig(
1661  ADC12_Regs *adc12, DL_ADC12_MEM_IDX idx)
1662 {
1663  return (adc12->ULLMEM.MEMCTL[idx]);
1664 }
1665 
1675 __STATIC_INLINE uint16_t DL_ADC12_getMemResult(
1676  ADC12_Regs *adc12, DL_ADC12_MEM_IDX idx)
1677 {
1678  volatile const uint32_t *pReg = &adc12->ULLMEM.MEMRES[idx];
1679 
1680  return (uint16_t)(*(pReg + DL_ADC12_SVT_OFFSET));
1681 }
1682 
1692 __STATIC_INLINE uint32_t DL_ADC12_getMemResultAddress(
1693  ADC12_Regs *adc12, DL_ADC12_MEM_IDX idx)
1694 {
1695  return ((uint32_t)(&adc12->ULLMEM.MEMRES[idx] + DL_ADC12_SVT_OFFSET));
1696 }
1697 
1707 __STATIC_INLINE uint32_t DL_ADC12_getStatus(ADC12_Regs *adc12)
1708 {
1709  return (adc12->ULLMEM.STATUS);
1710 }
1711 
1720  ADC12_Regs *adc12)
1721 {
1722  adc12->ULLMEM.GPRCM.CLKCFG &= ~(ADC12_CLKCFG_CCONRUN_ENABLE);
1723 }
1724 
1732 __STATIC_INLINE void DL_ADC12_forceSYSOSCOnInRunMode(ADC12_Regs *adc12)
1733 {
1734  adc12->ULLMEM.GPRCM.CLKCFG |= (ADC12_CLKCFG_CCONRUN_ENABLE);
1735 }
1736 
1745  ADC12_Regs *adc12)
1746 {
1747  adc12->ULLMEM.GPRCM.CLKCFG &= ~(ADC12_CLKCFG_CCONSTOP_ENABLE);
1748 }
1749 
1757 __STATIC_INLINE void DL_ADC12_forceSYSOSCOnInStopMode(ADC12_Regs *adc12)
1758 {
1759  adc12->ULLMEM.GPRCM.CLKCFG |= (ADC12_CLKCFG_CCONSTOP_ENABLE);
1760 }
1761 
1770 __STATIC_INLINE void DL_ADC12_enableInterrupt(
1771  ADC12_Regs *adc12, uint32_t interruptMask)
1772 {
1773  adc12->ULLMEM.INT_EVENT0.IMASK |= (interruptMask);
1774 }
1775 
1785 __STATIC_INLINE void DL_ADC12_disableInterrupt(
1786  ADC12_Regs *adc12, uint32_t interruptMask)
1787 {
1788  adc12->ULLMEM.INT_EVENT0.IMASK &= ~(interruptMask);
1789 }
1790 
1803 __STATIC_INLINE uint32_t DL_ADC12_getEnabledInterrupts(
1804  ADC12_Regs *adc12, uint32_t interruptMask)
1805 {
1806  return (adc12->ULLMEM.INT_EVENT0.IMASK & interruptMask);
1807 }
1808 
1823 __STATIC_INLINE uint32_t DL_ADC12_getEnabledInterruptStatus(
1824  ADC12_Regs *adc12, uint32_t interruptMask)
1825 {
1826  return (adc12->ULLMEM.INT_EVENT0.MIS & interruptMask);
1827 }
1828 
1843 __STATIC_INLINE uint32_t DL_ADC12_getRawInterruptStatus(
1844  ADC12_Regs *adc12, uint32_t interruptMask)
1845 {
1846  return (adc12->ULLMEM.INT_EVENT0.RIS & interruptMask);
1847 }
1848 
1861 __STATIC_INLINE DL_ADC12_IIDX DL_ADC12_getPendingInterrupt(ADC12_Regs *adc12)
1862 {
1863  return ((DL_ADC12_IIDX) adc12->ULLMEM.INT_EVENT0.IIDX);
1864 }
1865 
1875 __STATIC_INLINE void DL_ADC12_clearInterruptStatus(
1876  ADC12_Regs *adc12, uint32_t interruptMask)
1877 {
1878  adc12->ULLMEM.INT_EVENT0.ICLR |= (interruptMask);
1879 }
1880 
1889 __STATIC_INLINE void DL_ADC12_setPublisherChanID(
1890  ADC12_Regs *adc12, uint8_t chanID)
1891 {
1892  adc12->ULLMEM.FPUB_1 = (chanID & ADC12_FPUB_1_CHANID_MAXIMUM);
1893 }
1894 
1904 __STATIC_INLINE uint8_t DL_ADC12_getPublisherChanID(ADC12_Regs *adc12)
1905 {
1906  return (uint8_t)(adc12->ULLMEM.FPUB_1 & ADC12_FPUB_1_CHANID_MAXIMUM);
1907 }
1908 
1917 __STATIC_INLINE void DL_ADC12_setSubscriberChanID(
1918  ADC12_Regs *adc12, uint8_t chanID)
1919 {
1920  adc12->ULLMEM.FSUB_0 = (chanID & ADC12_FSUB_0_CHANID_MAXIMUM);
1921 }
1922 
1932 __STATIC_INLINE uint8_t DL_ADC12_getSubscriberChanID(ADC12_Regs *adc12)
1933 {
1934  return (uint8_t)(adc12->ULLMEM.FSUB_0 & ADC12_FSUB_0_CHANID_MAXIMUM);
1935 }
1936 
1945 __STATIC_INLINE void DL_ADC12_enableEvent(
1946  ADC12_Regs *adc12, uint32_t eventMask)
1947 {
1948  adc12->ULLMEM.INT_EVENT1.IMASK |= (eventMask);
1949 }
1950 
1959 __STATIC_INLINE void DL_ADC12_disableEvent(
1960  ADC12_Regs *adc12, uint32_t eventMask)
1961 {
1962  adc12->ULLMEM.INT_EVENT1.IMASK &= ~(eventMask);
1963 }
1964 
1977 __STATIC_INLINE uint32_t DL_ADC12_getEnabledEvents(
1978  ADC12_Regs *adc12, uint32_t eventMask)
1979 {
1980  return (adc12->ULLMEM.INT_EVENT1.IMASK & eventMask);
1981 }
1982 
2000 __STATIC_INLINE uint32_t DL_ADC12_getEnabledEventStatus(
2001  ADC12_Regs *adc12, uint32_t eventMask)
2002 {
2003  return (adc12->ULLMEM.INT_EVENT1.MIS & ~(eventMask));
2004 }
2005 
2021 __STATIC_INLINE uint32_t DL_ADC12_getRawEventsStatus(
2022  ADC12_Regs *adc12, uint32_t eventMask)
2023 {
2024  return (adc12->ULLMEM.INT_EVENT1.RIS & ~(eventMask));
2025 }
2026 
2035 __STATIC_INLINE void DL_ADC12_clearEventsStatus(
2036  ADC12_Regs *adc12, uint32_t eventMask)
2037 {
2038  adc12->ULLMEM.INT_EVENT1.ICLR |= (eventMask);
2039 }
2040 
2049 __STATIC_INLINE void DL_ADC12_enableDMATrigger(
2050  ADC12_Regs *adc12, uint32_t dmaMask)
2051 {
2052  adc12->ULLMEM.INT_EVENT2.IMASK |= (dmaMask);
2053 }
2054 
2063 __STATIC_INLINE void DL_ADC12_disableDMATrigger(
2064  ADC12_Regs *adc12, uint32_t dmaMask)
2065 {
2066  adc12->ULLMEM.INT_EVENT2.IMASK &= ~(dmaMask);
2067 }
2068 
2081 __STATIC_INLINE uint32_t DL_ADC12_getEnabledDMATrigger(
2082  ADC12_Regs *adc12, uint32_t dmaMask)
2083 {
2084  return (adc12->ULLMEM.INT_EVENT2.IMASK & dmaMask);
2085 }
2086 
2104 __STATIC_INLINE uint32_t DL_ADC12_getEnabledDMATriggerStatus(
2105  ADC12_Regs *adc12, uint32_t dmaMask)
2106 {
2107  return (adc12->ULLMEM.INT_EVENT2.MIS & ~(dmaMask));
2108 }
2109 
2125 __STATIC_INLINE uint32_t DL_ADC12_getRawDMATriggerStatus(
2126  ADC12_Regs *adc12, uint32_t dmaMask)
2127 {
2128  return (adc12->ULLMEM.INT_EVENT2.RIS & ~(dmaMask));
2129 }
2130 
2139 __STATIC_INLINE void DL_ADC12_clearDMATriggerStatus(
2140  ADC12_Regs *adc12, uint32_t dmaMask)
2141 {
2142  adc12->ULLMEM.INT_EVENT2.ICLR |= (dmaMask);
2143 }
2144 
2145 #ifdef __cplusplus
2146 }
2147 #endif
2148 
2149 #endif /* __MSPM0_HAS_ADC12__ */
2150 
2151 #endif /* ti_dl_dl_adc12__include */
2152 
__STATIC_INLINE void DL_ADC12_forceSYSOSCOnInRunMode(ADC12_Regs *adc12)
Forces SYSOSC to run at base frequency when device is in RUN mode.
Definition: dl_adc12.h:1732
DL_ADC12_SAMPLING_SOURCE
Definition: dl_adc12.h:829
DL_ADC12_CLOCK
Definition: dl_adc12.h:931
Definition: dl_adc12.h:933
__STATIC_INLINE void DL_Common_updateReg(volatile uint32_t *reg, uint32_t val, uint32_t mask)
Writes value to specified register - retaining bits unaffected by mask.
Definition: dl_common.h:63
Definition: dl_adc12.h:810
Definition: dl_adc12.h:984
Definition: dl_adc12.h:884
__STATIC_INLINE uint32_t DL_ADC12_getSamplingSource(ADC12_Regs *adc12)
Returns ADC12 sampling source.
Definition: dl_adc12.h:1236
__STATIC_INLINE uint32_t DL_ADC12_getHwAverageConfig(ADC12_Regs *adc12)
Return the hardware average configuration.
Definition: dl_adc12.h:1508
__STATIC_INLINE void DL_ADC12_enableDMA(ADC12_Regs *adc12)
Enables DMA for data transfer.
Definition: dl_adc12.h:1307
Definition: dl_adc12.h:981
Definition: dl_adc12.h:987
Definition: dl_adc12.h:798
__STATIC_INLINE bool DL_ADC12_isReset(ADC12_Regs *adc12)
Returns if adc12 peripheral was reset.
Definition: dl_adc12.h:1069
__STATIC_INLINE uint32_t DL_ADC12_getEndAddress(ADC12_Regs *adc12)
Gets end address for ADC conversion.
Definition: dl_adc12.h:1165
__STATIC_INLINE void DL_ADC12_setStartAddress(ADC12_Regs *adc12, uint32_t startAdd)
Sets the start address for ADC conversion.
Definition: dl_adc12.h:1123
__STATIC_INLINE void DL_ADC12_configConversionMem(ADC12_Regs *adc12, DL_ADC12_MEM_IDX idx, uint32_t chansel, uint32_t vref, uint32_t stime, uint32_t avgen, uint32_t bcsen, uint32_t trig, uint32_t wincomp)
Configures conversion memory.
Definition: dl_adc12.h:1641
Definition: dl_adc12.h:935
Definition: dl_adc12.h:881
__STATIC_INLINE void DL_ADC12_enableEvent(ADC12_Regs *adc12, uint32_t eventMask)
Enable ADC12 event.
Definition: dl_adc12.h:1945
Definition: dl_adc12.h:850
Definition: dl_adc12.h:947
DL_ADC12_SAMP_CONV_RES
Definition: dl_adc12.h:848
Definition: dl_adc12.h:834
Definition: dl_adc12.h:959
Definition: dl_adc12.h:914
__STATIC_INLINE void DL_ADC12_clearEventsStatus(ADC12_Regs *adc12, uint32_t eventMask)
Clear pending adc12 events.
Definition: dl_adc12.h:2035
__STATIC_INLINE uint32_t DL_ADC12_getEnabledDMATrigger(ADC12_Regs *adc12, uint32_t dmaMask)
Check which adc12 DMA triggers are enabled.
Definition: dl_adc12.h:2081
__STATIC_INLINE uint8_t DL_ADC12_getSubscriberChanID(ADC12_Regs *adc12)
Gets the event subscriber channel id.
Definition: dl_adc12.h:1932
Definition: dl_adc12.h:804
__STATIC_INLINE void DL_ADC12_setEndAddress(ADC12_Regs *adc12, uint32_t endAdd)
Sets the end address for ADC conversion.
Definition: dl_adc12.h:1152
__STATIC_INLINE uint16_t DL_ADC12_getSampleTime1(ADC12_Regs *adc12)
Get sample time 1.
Definition: dl_adc12.h:1561
Definition: dl_adc12.h:801
__STATIC_INLINE uint32_t DL_ADC12_getDataFormat(ADC12_Regs *adc12)
Returns ADC12 data format.
Definition: dl_adc12.h:1224
DL_ADC12_CLOCK_DIVIDE divideRatio
Definition: dl_adc12.h:1009
Definition: dl_adc12.h:908
__STATIC_INLINE uint32_t DL_ADC12_getFIFOData(ADC12_Regs *adc12)
Returns the data from the top of FIFO.
Definition: dl_adc12.h:1603
__STATIC_INLINE void DL_ADC12_setPowerDownMode(ADC12_Regs *adc12, uint32_t powerDownMode)
Configures ADC12 power down mode.
Definition: dl_adc12.h:1428
__STATIC_INLINE void DL_ADC12_reset(ADC12_Regs *adc12)
Resets adc12 peripheral.
Definition: dl_adc12.h:1053
Definition: dl_adc12.h:780
Definition: dl_adc12.h:926
Definition: dl_adc12.h:873
Definition: dl_adc12.h:953
__STATIC_INLINE uint16_t DL_ADC12_getMemResult(ADC12_Regs *adc12, DL_ADC12_MEM_IDX idx)
Returns the conversion result for the selected memory index.
Definition: dl_adc12.h:1675
__STATIC_INLINE uint32_t DL_ADC12_getEnabledEvents(ADC12_Regs *adc12, uint32_t eventMask)
Check which adc12 dma triggers are enabled.
Definition: dl_adc12.h:1977
Definition: dl_adc12.h:831
__STATIC_INLINE void DL_ADC12_setSampleTime1(ADC12_Regs *adc12, uint16_t adcclks)
Set sample time 1.
Definition: dl_adc12.h:1548
DriverLib Common APIs.
__STATIC_INLINE void DL_ADC12_initSeqSample(ADC12_Regs *adc12, uint32_t repeatMode, uint32_t sampleMode, uint32_t trigSrc, uint32_t startAdd, uint32_t endAdd, uint32_t resolution, uint32_t dataFormat)
Initializes ADC12 for sequence sampling mode operation.
Definition: dl_adc12.h:1189
__STATIC_INLINE void DL_ADC12_disableForcingSYSOSCOnInStopMode(ADC12_Regs *adc12)
Allows SYSOSC to not run at base frequency when device is in STOP mode.
Definition: dl_adc12.h:1744
__STATIC_INLINE void DL_ADC12_setSampleTime0(ADC12_Regs *adc12, uint16_t adcclks)
Set sample time 0.
Definition: dl_adc12.h:1522
Definition: dl_adc12.h:956
__STATIC_INLINE void DL_ADC12_disableForcingSYSOSCOnInRunMode(ADC12_Regs *adc12)
Allows SYSOSC to not run at base frequency when device is in RUN mode.
Definition: dl_adc12.h:1719
__STATIC_INLINE bool DL_ADC12_isDMAEnabled(ADC12_Regs *adc12)
Check if DMA is enabled.
Definition: dl_adc12.h:1332
__STATIC_INLINE void DL_ADC12_forceSYSOSCOnInStopMode(ADC12_Regs *adc12)
Forces SYSOSC to run at base frequency when device is in STOP mode.
Definition: dl_adc12.h:1757
Definition: dl_adc12.h:944
Definition: dl_adc12.h:990
__STATIC_INLINE void DL_ADC12_enableConversions(ADC12_Regs *adc12)
Enable ADC12 conversion.
Definition: dl_adc12.h:1454
__STATIC_INLINE void DL_ADC12_enableInterrupt(ADC12_Regs *adc12, uint32_t interruptMask)
Enable ADC12 interrupt.
Definition: dl_adc12.h:1770
Definition: dl_adc12.h:899
__STATIC_INLINE void DL_ADC12_enablePower(ADC12_Regs *adc12)
Enables power on adc12 module.
Definition: dl_adc12.h:1017
Definition: dl_adc12.h:843
__STATIC_INLINE void DL_ADC12_enableDMATrigger(ADC12_Regs *adc12, uint32_t dmaMask)
Enable ADC12 DMA triggers.
Definition: dl_adc12.h:2049
Definition: dl_adc12.h:870
Definition: dl_adc12.h:795
__STATIC_INLINE void DL_ADC12_disableDMATrigger(ADC12_Regs *adc12, uint32_t dmaMask)
Disable ADC12 DMA triggers.
Definition: dl_adc12.h:2063
__STATIC_INLINE uint32_t DL_ADC12_getRawDMATriggerStatus(ADC12_Regs *adc12, uint32_t dmaMask)
Check DMA triggers flag of any adc12 dma trigger.
Definition: dl_adc12.h:2125
__STATIC_INLINE uint32_t DL_ADC12_getRawEventsStatus(ADC12_Regs *adc12, uint32_t eventMask)
Check event flag of any adc12 event.
Definition: dl_adc12.h:2021
Definition: dl_adc12.h:863
Definition: dl_adc12.h:877
void DL_ADC12_setClockConfig(ADC12_Regs *adc12, DL_ADC12_ClockConfig *config)
Configures ADC12 sample clock divider and sample clock frequency range.
__STATIC_INLINE void DL_ADC12_configHwAverage(ADC12_Regs *adc12, uint32_t numerator, uint32_t denominator)
Configure ADC12 hardware average.
Definition: dl_adc12.h:1494
Definition: dl_adc12.h:789
__STATIC_INLINE bool DL_ADC12_isConversionsEnabled(ADC12_Regs *adc12)
Check if ADC12 conversion is enabled.
Definition: dl_adc12.h:1480
__STATIC_INLINE void DL_ADC12_clearDMATriggerStatus(ADC12_Regs *adc12, uint32_t dmaMask)
Clear pending adc12 DMA triggers.
Definition: dl_adc12.h:2139
Definition: dl_adc12.h:923
Configuration struct for DL_ADC12_setClockConfig.
Definition: dl_adc12.h:1000
Definition: dl_adc12.h:965
Definition: dl_adc12.h:852
Definition: dl_adc12.h:893
__STATIC_INLINE uint32_t DL_ADC12_getMemResultAddress(ADC12_Regs *adc12, DL_ADC12_MEM_IDX idx)
Returns the conversion result memory address.
Definition: dl_adc12.h:1692
Definition: dl_adc12.h:905
__STATIC_INLINE void DL_ADC12_stopConversion(ADC12_Regs *adc12)
Stop ADC12 conversion.
Definition: dl_adc12.h:1282
__STATIC_INLINE uint16_t DL_ADC12_getSampleTime0(ADC12_Regs *adc12)
Get sample time 0.
Definition: dl_adc12.h:1535
Definition: dl_adc12.h:840
Definition: dl_adc12.h:972
DL_ADC12_SAMP_CONV_DATA_FORMAT
Definition: dl_adc12.h:858
Definition: dl_adc12.h:783
DL_ADC12_CLOCK_FREQ_RANGE
Definition: dl_adc12.h:970
__STATIC_INLINE uint32_t DL_ADC12_getEnabledInterruptStatus(ADC12_Regs *adc12, uint32_t interruptMask)
Check interrupt flag of enabled ADC12 interrupt.
Definition: dl_adc12.h:1823
__STATIC_INLINE uint32_t DL_ADC12_getStartAddress(ADC12_Regs *adc12)
Gets start address for ADC conversion.
Definition: dl_adc12.h:1138
Definition: dl_adc12.h:854
__STATIC_INLINE void DL_ADC12_disableFIFO(ADC12_Regs *adc12)
Disables FIFO mode.
Definition: dl_adc12.h:1381
Definition: dl_adc12.h:821
Definition: dl_adc12.h:950
__STATIC_INLINE DL_ADC12_TRIG_SRC DL_ADC12_getTriggerSource(ADC12_Regs *adc12)
Returns ADC12 trigger mode.
Definition: dl_adc12.h:1260
__STATIC_INLINE uint32_t DL_ADC12_getResolution(ADC12_Regs *adc12)
Returns ADC12 resolution.
Definition: dl_adc12.h:1212
DL_ADC12_CLOCK_FREQ_RANGE freqRange
Definition: dl_adc12.h:1006
Definition: dl_adc12.h:962
Definition: dl_adc12.h:786
__STATIC_INLINE void DL_ADC12_setPublisherChanID(ADC12_Regs *adc12, uint8_t chanID)
Sets the event publisher channel id.
Definition: dl_adc12.h:1889
__STATIC_INLINE bool DL_ADC12_isConversionStarted(ADC12_Regs *adc12)
Check if ADC12 conversion is started.
Definition: dl_adc12.h:1297
DL_ADC12_IIDX
Definition: dl_adc12.h:868
#define DL_ADC12_SVT_OFFSET
This is an internal macro is used to resolve the offset to ADC12 SVT aperture.
Definition: dl_adc12.h:772
void DL_ADC12_getClockConfig(ADC12_Regs *adc12, DL_ADC12_ClockConfig *config)
Returns ADC12 sample clock configuration.
DL_ADC12_REPEAT_MODE
Definition: dl_adc12.h:818
Definition: dl_adc12.h:993
__STATIC_INLINE uint32_t DL_ADC12_getEnabledDMATriggerStatus(ADC12_Regs *adc12, uint32_t dmaMask)
Check event flag of enabled adc12 DMA triggers.
Definition: dl_adc12.h:2104
__STATIC_INLINE void DL_ADC12_startConversion(ADC12_Regs *adc12)
Start ADC12 conversion.
Definition: dl_adc12.h:1272
__STATIC_INLINE void DL_ADC12_setSubscriberChanID(ADC12_Regs *adc12, uint8_t chanID)
Sets the event subscriber channel id.
Definition: dl_adc12.h:1917
Definition: dl_adc12.h:920
Definition: dl_adc12.h:824
Definition: dl_adc12.h:902
__STATIC_INLINE void DL_ADC12_disablePower(ADC12_Regs *adc12)
Disables power on adc12 module.
Definition: dl_adc12.h:1028
__STATIC_INLINE void DL_ADC12_configWinCompLowThld(ADC12_Regs *adc12, uint16_t threshold)
Configures window comparator low threshold.
Definition: dl_adc12.h:1575
DL_ADC12_CLOCK clockSel
Definition: dl_adc12.h:1003
__STATIC_INLINE uint32_t DL_ADC12_getEnabledEventStatus(ADC12_Regs *adc12, uint32_t eventMask)
Check event flag of enabled adc12 event.
Definition: dl_adc12.h:2000
__STATIC_INLINE void DL_ADC12_clearInterruptStatus(ADC12_Regs *adc12, uint32_t interruptMask)
Clear pending ADC12 interrupt.
Definition: dl_adc12.h:1875
__STATIC_INLINE void DL_ADC12_enableFIFO(ADC12_Regs *adc12)
Enables FIFO mode.
Definition: dl_adc12.h:1370
Definition: dl_adc12.h:813
Definition: dl_adc12.h:890
__STATIC_INLINE uint32_t DL_ADC12_getEnabledInterrupts(ADC12_Regs *adc12, uint32_t interruptMask)
Check which ADC12 interrupts are enabled.
Definition: dl_adc12.h:1803
__STATIC_INLINE uint32_t DL_ADC12_getRawInterruptStatus(ADC12_Regs *adc12, uint32_t interruptMask)
Check interrupt flag of any ADC12 interrupt.
Definition: dl_adc12.h:1843
__STATIC_INLINE void DL_ADC12_setDMASamplesCnt(ADC12_Regs *adc12, uint8_t sampCnt)
Set number of ADC results to be transfer on a DMA trigger.
Definition: dl_adc12.h:1346
Definition: dl_adc12.h:887
__STATIC_INLINE void DL_ADC12_disableEvent(ADC12_Regs *adc12, uint32_t eventMask)
Disable ADC12 event.
Definition: dl_adc12.h:1959
__STATIC_INLINE DL_ADC12_IIDX DL_ADC12_getPendingInterrupt(ADC12_Regs *adc12)
Get highest priority pending ADC12 interrupt.
Definition: dl_adc12.h:1861
__STATIC_INLINE uint8_t DL_ADC12_getDMASampleCnt(ADC12_Regs *adc12)
Get number of ADC results to be transfer on a DMA trigger.
Definition: dl_adc12.h:1360
DL_ADC12_TRIG_SRC
Definition: dl_adc12.h:838
Definition: dl_adc12.h:807
__STATIC_INLINE uint32_t DL_ADC12_getSampleMode(ADC12_Regs *adc12)
Returns ADC12 sampling mode.
Definition: dl_adc12.h:1248
DL_ADC12_MEM_IDX
Definition: dl_adc12.h:777
Definition: dl_adc12.h:978
__STATIC_INLINE void DL_ADC12_disableConversions(ADC12_Regs *adc12)
Disable ADC12 conversion.
Definition: dl_adc12.h:1464
Definition: dl_adc12.h:975
__STATIC_INLINE uint32_t DL_ADC12_getConversionMemConfig(ADC12_Regs *adc12, DL_ADC12_MEM_IDX idx)
Returns conversion memory configuration.
Definition: dl_adc12.h:1660
__STATIC_INLINE uint8_t DL_ADC12_getPublisherChanID(ADC12_Regs *adc12)
Gets the event publisher channel id.
Definition: dl_adc12.h:1904
Definition: dl_adc12.h:937
Definition: dl_adc12.h:792
Definition: dl_adc12.h:911
Definition: dl_adc12.h:917
__STATIC_INLINE uint32_t DL_ADC12_getFIFOAddress(ADC12_Regs *adc12)
Returns the address of FIFO data register.
Definition: dl_adc12.h:1617
__STATIC_INLINE void DL_ADC12_initSingleSample(ADC12_Regs *adc12, uint32_t repeatMode, uint32_t sampleMode, uint32_t trigSrc, uint32_t resolution, uint32_t dataFormat)
Initializes ADC12 for single sampling mode operation. This initialization configures MEMCTL0 as the d...
Definition: dl_adc12.h:1095
__STATIC_INLINE void DL_ADC12_disableInterrupt(ADC12_Regs *adc12, uint32_t interruptMask)
Disable ADC12 interrupt.
Definition: dl_adc12.h:1785
__STATIC_INLINE uint32_t DL_ADC12_getPowerDownMode(ADC12_Regs *adc12)
Returns ADC power down mode.
Definition: dl_adc12.h:1444
Definition: dl_adc12.h:896
__STATIC_INLINE void DL_ADC12_configWinCompHighThld(ADC12_Regs *adc12, uint16_t threshold)
Configures window comparator high threshold.
Definition: dl_adc12.h:1590
DL_ADC12_CLOCK_DIVIDE
Definition: dl_adc12.h:941
__STATIC_INLINE uint32_t DL_ADC12_getStatus(ADC12_Regs *adc12)
Returns ADC12 status.
Definition: dl_adc12.h:1707
__STATIC_INLINE bool DL_ADC12_isFIFOEnabled(ADC12_Regs *adc12)
Checks if FIFO mode is enabled.
Definition: dl_adc12.h:1397
__STATIC_INLINE void DL_ADC12_disableDMA(ADC12_Regs *adc12)
Disables DMA for data transfer.
Definition: dl_adc12.h:1317
Definition: dl_adc12.h:860
__STATIC_INLINE bool DL_ADC12_isPowerEnabled(ADC12_Regs *adc12)
Returns if power on adc12 module.
Definition: dl_adc12.h:1042
© Copyright 1995-2023, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale