libopencm3
A free/libre/open-source firmware library for various ARM Cortex-M3 microcontrollers.
adc_common.c
Go to the documentation of this file.
1/** @addtogroup adc_file ADC peripheral API
2 * @ingroup peripheral_apis
3 */
4/*
5 * This file is part of the libopencm3 project.
6 *
7 * Copyright (C) 2015 Kuldeep Singh Dhaka <kuldeepdhaka9@gmail.com>
8 *
9 * This library is free software: you can redistribute it and/or modify
10 * it under the terms of the GNU Lesser General Public License as published by
11 * the Free Software Foundation, either version 3 of the License, or
12 * (at your option) any later version.
13 *
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU Lesser General Public License for more details.
18 *
19 * You should have received a copy of the GNU Lesser General Public License
20 * along with this library. If not, see <http://www.gnu.org/licenses/>.
21 */
22
24
25/**@{*/
26
27/**
28 * Set ADC over sampling
29 * @param[in] adc ADC (use ADCx)
30 * @param[in] oversamp Oversampling (use ADC_CTRL_OVERSEL_Xx)
31 */
32void adc_set_oversampling(uint32_t adc, uint32_t oversamp)
33{
34 ADC_CTRL(adc) = (ADC_CTRL(adc) & ~ADC_CTRL_OVERSEL_MASK) | oversamp;
35}
36
37/**
38 * Set ADC warm up
39 * @param[in] adc ADC (use ADCx)
40 * @param[in] clocks Clock cycles (1 - 128)
41 * @note warm-up-time = (@a clocks / HFPERCLK)
42 */
43void adc_set_warm_up(uint32_t adc, uint8_t clocks)
44{
45 uint32_t timebase = ADC_CTRL_TIMEBASE(clocks - 1);
46 ADC_CTRL(adc) = (ADC_CTRL(adc) & ~ADC_CTRL_TIMEBASE_MASK) | timebase;
47}
48
49/** Clock division factor
50 * @param[in] adc ADC (use ADCx)
51 * @param[in] factor Factor (1 - 128)
52 * @note output-clock = input-clock / @a factor
53 */
54void adc_set_clock_prescaler(uint32_t adc, uint8_t factor)
55{
56 uint32_t presc = ADC_CTRL_PRESC(factor - 1);
57 ADC_CTRL(adc) = (ADC_CTRL(adc) & ~ADC_CTRL_PRESC_MASK) | presc;
58}
59
60/**
61 * Set low pass filter mode
62 * @param[in] adc ADC (use ADCx)
63 * @param[in] lpfmode Low pass filter mode (use ADC_CTRL_LPFMODE_*)
64 */
65void adc_set_lowpass_filter(uint32_t adc, uint32_t lpfmode)
66{
67 ADC_CTRL(adc) = (ADC_CTRL(adc) & ~ADC_CTRL_LPFMODE_MASK) | lpfmode;
68}
69
70/**
71 * Enable tail gating
72 * @param[in] adc ADC (use ADCx)
73 */
74void adc_enable_tailgating(uint32_t adc)
75{
77}
78
79/**
80 * Disable tail gating
81 * @param[in] adc ADC (use ADCx)
82 */
83void adc_disable_tailgating(uint32_t adc)
84{
85 ADC_CTRL(adc) &= ~ADC_CTRL_TAILGATE;
86}
87
88/**
89 * Set warm up mode
90 * @param[in] adc ADC (use ADCx)
91 * @param[in] warmupmode Warm Up Mode (use ADC_CTRL_WARMUPMODE_*)
92 */
93void adc_set_warm_up_mode(uint32_t adc, uint32_t warmupmode)
94{
95 ADC_CTRL(adc) = (ADC_CTRL(adc) & ~ADC_CTRL_WARMUPMODE_MASK)
96 | warmupmode;
97}
98
99/**
100 * Start ADC in single acquisition
101 * @param[in] adc ADC (use ADCx)
102 */
103void adc_single_start(uint32_t adc)
104{
106}
107
108/**
109 * Stop ADC in single acquisition
110 * @param[in] adc ADC (use ADCx)
111 */
112void adc_single_stop(uint32_t adc)
113{
115}
116
117/**
118 * Start ADC in scan acquisition
119 * @param[in] adc ADC (use ADCx)
120 */
121void adc_scan_start(uint32_t adc)
122{
124}
125
126/**
127 * Stop ADC in scan acquisition
128 * @param[in] adc ADC (use ADCx)
129 */
130void adc_scan_stop(uint32_t adc)
131{
133}
134
135/* Single ----------------------------------------------------------- */
136/**
137 * Set single PRS trigger
138 * @param[in] adc ADC (use ADCx)
139 * @param[in] prssel PRS Selected (use PRS_CHx)
140 */
141void adc_set_single_prs_trigger(uint32_t adc, uint8_t prssel)
142{
143 ADC_SINGLECTRL(adc) =
144 (ADC_SINGLECTRL(adc) & ~ADC_SINGLECTRL_PRSSEL_MASK) |
146}
147
148/**
149 * Enable single PRS Triggering
150 * @param[in] adc ADC (use ADCx)
151 */
153{
155}
156
157/**
158 * Disable single PRS Triggering
159 * @param[in] adc ADC (use ADCx)
160 */
162{
163 ADC_SINGLECTRL(adc) &= ~ADC_SINGLECTRL_PRSEN;
164}
165
166/**
167 * Set single acquisition cycle
168 * @param[in] adc ADC (use ADCx)
169 * @param[in] at Acquisition time (use ADC_SINGLECTRL_AT_x)
170 */
171void adc_set_single_acquisition_cycle(uint32_t adc, uint32_t at)
172{
173 ADC_SINGLECTRL(adc) =
174 (ADC_SINGLECTRL(adc) & ~ADC_SINGLECTRL_AT_MASK) | at;
175}
176
177/**
178 * Set single reference for acquisition
179 * @param[in] adc ADC (use ADCx)
180 * @param[in] ref Reference (use ADC_SINGLECTRL_REF_x)
181 */
182void adc_set_single_reference(uint32_t adc, uint32_t ref)
183{
184 ADC_SINGLECTRL(adc) =
185 (ADC_SINGLECTRL(adc) & ~ADC_SINGLECTRL_REF_MASK) | ref;
186}
187
188/**
189 * Set single channel
190 * @param[in] adc ADC (use ADCx)
191 * @param[in] ch Channel (use ADC_CHx and ADC_CH_*)
192 */
193void adc_set_single_channel(uint32_t adc, uint8_t ch)
194{
195 ADC_SINGLECTRL(adc) =
196 (ADC_SINGLECTRL(adc) & ~ADC_SINGLECTRL_INPUTSEL_MASK) |
198}
199
200/**
201 * Set single resolution of conversion
202 * @param[in] adc ADC (use ADCx)
203 * @param[in] res Resolution (use ADC_SINGLECTRL_RES_*)
204 */
205void adc_set_single_resolution(uint32_t adc, uint32_t res)
206{
207 ADC_SINGLECTRL(adc) =
208 (ADC_SINGLECTRL(adc) & ~ADC_SINGLECTRL_RES_MASK) | res;
209}
210
211/**
212 * Set single left aligned output
213 * @param[in] adc ADC (use ADCx)
214 */
216{
218}
219
220/**
221 * Set single right aligned output
222 * @param[in] adc ADC (use ADCx)
223 */
225{
226 ADC_SINGLECTRL(adc) &= ~ADC_SINGLECTRL_ADJ;
227}
228
229/**
230 * Set single single-ended conversion
231 * @param[in] adc ADC (use ADCx)
232 */
234{
235 ADC_SINGLECTRL(adc) &= ~ADC_SINGLECTRL_DIFF;
236}
237
238/**
239 * Set single differential conversion
240 * @param[in] adc ADC (use ADCx)
241 */
243{
245}
246
247/**
248 * Enable single channel repeated conversion
249 * @param[in] adc ADC (use ADCx)
250 */
252{
254}
255
256/**
257 * Disable single repeated conversion
258 * @param[in] adc ADC (use ADCx)
259 */
261{
262 ADC_SINGLECTRL(adc) &= ~ADC_SINGLECTRL_REP;
263}
264
265/* Scan ------------------------------------------------------------- */
266/**
267 * Set scan PRS trigger
268 * @param[in] adc ADC (use ADCx)
269 * @param[in] prssel PRS Selected (use PRS_CHx)
270 */
271void adc_set_scan_prs_trigger(uint32_t adc, uint8_t prssel)
272{
273 ADC_SCANCTRL(adc) =
274 (ADC_SCANCTRL(adc) & ~ADC_SCANCTRL_PRSSEL_MASK) |
276}
277
278/**
279 * Enable scan PRS Triggering
280 * @param[in] adc ADC (use ADCx)
281 */
283{
285}
286
287/**
288 * Disable scan PRS Triggering
289 * @param[in] adc ADC (use ADCx)
290 */
292{
293 ADC_SCANCTRL(adc) &= ~ADC_SCANCTRL_PRSEN;
294}
295
296/**
297 * Set scan acquisition cycle
298 * @param[in] adc ADC (use ADCx)
299 * @param[in] at Acquisition time (use ADC_SCANCTRL_AT_x)
300 */
301void adc_set_scan_acquisition_cycle(uint32_t adc, uint32_t at)
302{
303 ADC_SCANCTRL(adc) =
304 (ADC_SCANCTRL(adc) & ~ADC_SCANCTRL_AT_MASK) | at;
305}
306
307/**
308 * Set scan reference for acquisition
309 * @param[in] adc ADC (use ADCx)
310 * @param[in] ref Reference (use ADC_SCANCTRL_REF_x)
311 */
312void adc_set_scan_reference(uint32_t adc, uint32_t ref)
313{
314 ADC_SCANCTRL(adc) =
315 (ADC_SCANCTRL(adc) & ~ADC_SCANCTRL_REF_MASK) | ref;
316}
317
318/**
319 * Set scan channel list
320 * @param[in] adc ADC (use ADCx)
321 * @param[in] length Length of @a channel
322 * @param[in] channel channel list (use ADC_CHx)
323 * @note channel[0] is used as single acuqisition
324 */
325void adc_set_scan_channel(uint32_t adc, uint8_t length, uint8_t channel[])
326{
327 unsigned i;
328 uint32_t val = 0;
329
330 for (i = 0; i < length; i++) {
331 val |= 1 << (channel[i] + ADC_SCANCTRL_INPUTSEL_SHIFT);
332 }
333
334 ADC_SCANCTRL(adc) =
335 (ADC_SCANCTRL(adc) & ~ADC_SCANCTRL_INPUTSEL_MASK) |
337}
338
339/**
340 * Set scan resolution of conversion
341 * @param[in] adc ADC (use ADCx)
342 * @param[in] res Resolution (use ADC_SCANCTRL_RES_*)
343 */
344void adc_set_scan_resolution(uint32_t adc, uint32_t res)
345{
346 ADC_SCANCTRL(adc) =
347 (ADC_SCANCTRL(adc) & ~ADC_SCANCTRL_RES_MASK) | res;
348}
349
350/**
351 * Set scan left aligned output
352 * @param[in] adc ADC (use ADCx)
353 */
355{
357}
358
359/**
360 * Set scan right aligned output
361 * @param[in] adc ADC (use ADCx)
362 */
364{
365 ADC_SCANCTRL(adc) &= ~ADC_SCANCTRL_ADJ;
366}
367
368/**
369 * Set scan single ended conversion
370 * @param[in] adc ADC (use ADCx)
371 */
373{
374 ADC_SCANCTRL(adc) &= ~ADC_SCANCTRL_DIFF;
375}
376
377/**
378 * Set scan differential conversion
379 * @param[in] adc ADC (use ADCx)
380 */
382{
384}
385
386/**
387 * Enable scan repeated conversion
388 * @param[in] adc ADC (use ADCx)
389 * @note In SINGLE mode, channel is repeated
390 * @note In SCAN mode, channel sequence is repeated
391 */
393{
395}
396
397/**
398 * Disable scan repeated conversion
399 * @param[in] adc ADC (use ADCx)
400 */
402{
403 ADC_SCANCTRL(adc) &= ~ADC_SCANCTRL_REP;
404}
405
406/**
407 * Enable single result overflow interrupt
408 * @param[in] adc ADC (use ADCx)
409 */
411{
413}
414
415/**
416 * Disable single result overflow interrupt
417 * @param[in] adc ADC (use ADCx)
418 */
420{
421 ADC_IEN(adc) &= ~ADC_IEN_SINGLEOF;
422}
423
424/**
425 * Enable single conversion complete interrupt
426 * @param[in] adc ADC (use ADCx)
427 */
429{
430 ADC_IEN(adc) |= ADC_IEN_SINGLE;
431}
432
433/**
434 * Disable single conversion complete interrupt
435 * @param[in] adc ADC (use ADCx)
436 */
438{
439 ADC_IEN(adc) &= ~ADC_IEN_SINGLE;
440}
441
442/**
443 * Enable scan result overflow interrupt
444 * @param[in] adc ADC (use ADCx)
445 */
447{
448 ADC_IEN(adc) |= ADC_IEN_SCANOF;
449}
450
451/**
452 * Disable scan result overflow interrupt
453 * @param[in] adc ADC (use ADCx)
454 */
456{
457 ADC_IEN(adc) &= ~ADC_IEN_SCANOF;
458}
459
460/**
461 * Disable scan conversion complete interrupt
462 * @param[in] adc ADC (use ADCx)
463 */
465{
466 ADC_IEN(adc) |= ADC_IEN_SCAN;
467}
468
469/**
470 * Disable scan conversion complete interrupt
471 * @param[in] adc ADC (use ADCx)
472 */
474{
475 ADC_IEN(adc) &= ~ADC_IEN_SCAN;
476}
477
478/**
479 * Get single result overflow flag
480 * @param[in] adc ADC (use ADCx)
481 * @retval true if flag set
482 * @retval false if flag is not set
483 */
485{
486 return (ADC_IF(adc) & ADC_IF_SCANOF) != 0;
487}
488
489/**
490 * Get single conversion complete flag
491 * @param[in] adc ADC (use ADCx)
492 * @retval true if flag set
493 * @retval false if flag is not set
494 */
496{
497 return (ADC_IF(adc) & ADC_IF_SINGLE) != 0;
498}
499
500/**
501 * Get scan result overflow flag
502 * @param[in] adc ADC (use ADCx)
503 * @retval true if flag set
504 * @retval false if flag is not set
505 */
507{
508 return (ADC_IF(adc) & ADC_IF_SCANOF) != 0;
509}
510
511/**
512 * Get scan conversion complete flag
513 * @param[in] adc ADC (use ADCx)
514 * @retval true if flag is set
515 * @retval false if flag is not set
516 */
518{
519 return (ADC_IF(adc) & ADC_IF_SCAN) != 0;
520}
521
522/**
523 * Set single result overflow flag
524 * @param[in] adc ADC (use ADCx)
525 */
527{
529}
530
531/**
532 * Set single conversion complete flag
533 * @param[in] adc ADC (use ADCx)
534 */
536{
537 ADC_IFS(adc) = ADC_IFS_SINGLE;
538}
539
540/**
541 * Set scan result overflow flag
542 * @param[in] adc ADC (use ADCx)
543 */
545{
546 ADC_IFS(adc) = ADC_IFS_SCANOF;
547}
548
549/**
550 * Set scan conversion complete flag
551 * @param[in] adc ADC (use ADCx)
552 */
554{
555 ADC_IFS(adc) = ADC_IFS_SCAN;
556}
557
558/**
559 * Clear single result overflow flag
560 * @param[in] adc ADC (use ADCx)
561 */
563{
565}
566
567/**
568 * Clear single conversion complete flag
569 * @param[in] adc ADC (use ADCx)
570 */
572{
573 ADC_IFC(adc) = ADC_IFC_SINGLE;
574}
575
576/**
577 * Clear scan result overflow flag
578 * @param[in] adc ADC (use ADCx)
579 */
581{
582 ADC_IFC(adc) = ADC_IFC_SCANOF;
583}
584
585/**
586 * Clear scan conversion complete flag
587 * @param[in] adc ADC (use ADCx)
588 */
590{
591 ADC_IFC(adc) = ADC_IFC_SCAN;
592}
593
594/**
595 * Get result from last scan conversion
596 * @param[in] adc ADC (use ADCx)
597 * @return result
598 */
599uint32_t adc_single_data(uint32_t adc)
600{
601 return ADC_SINGLEDATA(adc);
602}
603
604/**
605 * Get result from last scan conversion
606 * @param[in] adc ADC (use ADCx)
607 * @return result
608 */
609uint32_t adc_scan_data(uint32_t adc)
610{
611 return ADC_SCANDATA(adc);
612}
613
614/**
615 * Get result from last single conversion (peak)
616 * Reading result using this function will not clear
617 * SINGLEDV in ADC_STATUS or SINGLE DMA request.
618 * @param[in] adc ADC (use ADCx)
619 * @return result
620 */
621uint32_t adc_single_data_peak(uint32_t adc)
622{
623 return ADC_SINGLEDATAP(adc);
624}
625
626/**
627 * Get result from last scan conversion (peak)
628 * Reading result using this function will not clear
629 * SCANDV in ADC_STATUS or SCAN DMA request.
630 * @param[in] adc ADC (use ADCx)
631 * @return result
632 */
633uint32_t adc_scan_data_peak(uint32_t adc)
634{
635 return ADC_SCANDATAP(adc);
636}
637
638/**
639 * Set ADC scan gain calibration
640 * @param[in] adc ADC (use ADCx)
641 * @param scan_gain calibration of gain for internal ref
642 */
643void adc_set_calibration_scan_gain(uint32_t adc, uint8_t scan_gain)
644{
645 ADC_CAL(adc) = (ADC_CAL(adc) & ADC_CAL_SCANGAIN_MASK) | scan_gain;
646}
647
648/**
649 * Set ADC scan offset calibration
650 * @param[in] adc ADC (use ADCx)
651 * @param scan_offset calibration of offset for internal ref
652 */
653void adc_set_calibration_scan_offset(uint32_t adc, uint8_t scan_offset)
654{
655 ADC_CAL(adc) = (ADC_CAL(adc) & ADC_CAL_SCANOFF_MASK) | scan_offset;
656}
657
658/**
659 * Set ADC single gain calibration
660 * @param[in] adc ADC (use ADCx)
661 * @param single_gain calibration of gain for internal ref
662 */
663void adc_set_calibration_single_gain(uint32_t adc, uint8_t single_gain)
664{
665 ADC_CAL(adc) = (ADC_CAL(adc) & ADC_CAL_SINGLEGAIN_MASK) | single_gain;
666}
667
668/**
669 * Set ADC single offset calibration
670 * @param[in] adc ADC (use ADCx)
671 * @param single_offset calibration of offset for internal ref
672 */
673void adc_set_calibration_single_offset(uint32_t adc, uint8_t single_offset)
674{
675 ADC_CAL(adc) = (ADC_CAL(adc) & ADC_CAL_SINGLEOFF_MASK) | single_offset;
676}
677
678/**@}*/
#define ADC_CTRL_TIMEBASE(v)
Definition: adc_common.h:65
#define ADC_IFC_SCANOF
Definition: adc_common.h:300
#define ADC_SCANCTRL_INPUTSEL_MASK
Definition: adc_common.h:249
#define ADC_CAL_SCANGAIN_MASK
Definition: adc_common.h:307
#define ADC_CTRL_TAILGATE
Definition: adc_common.h:81
#define ADC_CMD_SCANSTOP
Definition: adc_common.h:93
#define ADC_IFC_SINGLEOF
Definition: adc_common.h:301
#define ADC_SCANCTRL_REP
Definition: adc_common.h:279
#define ADC_IEN_SINGLEOF
Definition: adc_common.h:283
#define ADC_IEN(base)
Definition: adc_common.h:34
#define ADC_IF_SCANOF
Definition: adc_common.h:288
#define ADC_IEN_SCAN
Definition: adc_common.h:284
#define ADC_CAL_SCANOFF_MASK
Definition: adc_common.h:310
#define ADC_IFS_SCAN
Definition: adc_common.h:296
#define ADC_IFC_SCAN
Definition: adc_common.h:302
#define ADC_SINGLECTRL_ADJ
Definition: adc_common.h:196
#define ADC_IFC_SINGLE
Definition: adc_common.h:303
#define ADC_SCANCTRL_INPUTSEL_SHIFT
Definition: adc_common.h:248
#define ADC_SCANCTRL_ADJ
Definition: adc_common.h:277
#define ADC_SINGLECTRL_DIFF
Definition: adc_common.h:197
#define ADC_SCANCTRL_PRSEN
Definition: adc_common.h:219
#define ADC_CTRL(base)
Definition: adc_common.h:29
#define ADC_SINGLEDATAP(base)
Definition: adc_common.h:40
#define ADC_SINGLECTRL(base)
Definition: adc_common.h:32
#define ADC_SCANDATAP(base)
Definition: adc_common.h:41
#define ADC_IFS_SINGLEOF
Definition: adc_common.h:295
#define ADC_SINGLECTRL_REP
Definition: adc_common.h:198
#define ADC_IEN_SCANOF
Definition: adc_common.h:282
#define ADC_SINGLECTRL_PRSEN
Definition: adc_common.h:131
#define ADC_SCANDATA(base)
Definition: adc_common.h:39
#define ADC_CMD(base)
Definition: adc_common.h:30
#define ADC_SCANCTRL_DIFF
Definition: adc_common.h:278
#define ADC_IFS(base)
Definition: adc_common.h:36
#define ADC_IF_SCAN
Definition: adc_common.h:290
#define ADC_IFC(base)
Definition: adc_common.h:37
#define ADC_IFS_SCANOF
Definition: adc_common.h:294
#define ADC_CMD_SINGLESTART
Definition: adc_common.h:96
#define ADC_CAL_SINGLEGAIN_MASK
Definition: adc_common.h:313
#define ADC_CAL_SINGLEOFF_MASK
Definition: adc_common.h:316
#define ADC_CMD_SINGLESTOP
Definition: adc_common.h:95
#define ADC_CTRL_PRESC(v)
Definition: adc_common.h:70
#define ADC_CMD_SCANSTART
Definition: adc_common.h:94
#define ADC_CAL(base)
Definition: adc_common.h:42
#define ADC_SINGLEDATA(base)
Definition: adc_common.h:38
#define ADC_IFS_SINGLE
Definition: adc_common.h:297
#define ADC_IEN_SINGLE
Definition: adc_common.h:285
#define ADC_SINGLECTRL_INPUTSEL(v)
Definition: adc_common.h:161
#define ADC_SINGLECTRL_PRSSEL_PRSCHx(x)
Definition: adc_common.h:117
#define ADC_IF(base)
Definition: adc_common.h:35
#define ADC_SCANCTRL_PRSSEL_PRSCHx(x)
Definition: adc_common.h:205
#define ADC_IF_SINGLE
Definition: adc_common.h:291
#define ADC_SCANCTRL(base)
Definition: adc_common.h:33
void adc_disable_tailgating(uint32_t adc)
Disable tail gating.
Definition: adc_common.c:83
void adc_single_start(uint32_t adc)
Start ADC in single acquisition.
Definition: adc_common.c:103
uint32_t adc_single_data_peak(uint32_t adc)
Get result from last single conversion (peak) Reading result using this function will not clear SINGL...
Definition: adc_common.c:621
void adc_set_scan_channel(uint32_t adc, uint8_t length, uint8_t channel[])
Set scan channel list.
Definition: adc_common.c:325
void adc_enable_scan_repeat_conv(uint32_t adc)
Enable scan repeated conversion.
Definition: adc_common.c:392
void adc_set_single_result_overflow_flag(uint32_t adc)
Set single result overflow flag.
Definition: adc_common.c:526
void adc_set_scan_right_aligned(uint32_t adc)
Set scan right aligned output.
Definition: adc_common.c:363
void adc_enable_scan_prs_trigger(uint32_t adc)
Enable scan PRS Triggering.
Definition: adc_common.c:282
void adc_clear_single_result_overflow_flag(uint32_t adc)
Clear single result overflow flag.
Definition: adc_common.c:562
void adc_disable_scan_result_overflow_interrupt(uint32_t adc)
Disable scan result overflow interrupt.
Definition: adc_common.c:455
bool adc_get_single_conversion_complete_flag(uint32_t adc)
Get single conversion complete flag.
Definition: adc_common.c:495
void adc_set_scan_result_overflow_flag(uint32_t adc)
Set scan result overflow flag.
Definition: adc_common.c:544
uint32_t adc_single_data(uint32_t adc)
Get result from last scan conversion.
Definition: adc_common.c:599
void adc_set_warm_up_mode(uint32_t adc, uint32_t warmupmode)
Set warm up mode.
Definition: adc_common.c:93
void adc_set_single_differential(uint32_t adc)
Set single differential conversion.
Definition: adc_common.c:242
void adc_enable_single_prs_trigger(uint32_t adc)
Enable single PRS Triggering.
Definition: adc_common.c:152
void adc_scan_stop(uint32_t adc)
Stop ADC in scan acquisition.
Definition: adc_common.c:130
void adc_set_scan_single_ended(uint32_t adc)
Set scan single ended conversion.
Definition: adc_common.c:372
void adc_set_single_acquisition_cycle(uint32_t adc, uint32_t at)
Set single acquisition cycle.
Definition: adc_common.c:171
void adc_disable_single_prs_trigger(uint32_t adc)
Disable single PRS Triggering.
Definition: adc_common.c:161
void adc_disable_single_repeat_conv(uint32_t adc)
Disable single repeated conversion.
Definition: adc_common.c:260
bool adc_get_scan_conversion_complete_flag(uint32_t adc)
Get scan conversion complete flag.
Definition: adc_common.c:517
void adc_set_oversampling(uint32_t adc, uint32_t oversamp)
Set ADC over sampling.
Definition: adc_common.c:32
void adc_enable_scan_conversion_complete_interrupt(uint32_t adc)
Disable scan conversion complete interrupt.
Definition: adc_common.c:464
bool adc_get_scan_result_overflow_flag(uint32_t adc)
Get scan result overflow flag.
Definition: adc_common.c:506
void adc_enable_tailgating(uint32_t adc)
Enable tail gating.
Definition: adc_common.c:74
void adc_disable_scan_repeat_conv(uint32_t adc)
Disable scan repeated conversion.
Definition: adc_common.c:401
void adc_set_single_channel(uint32_t adc, uint8_t ch)
Set single channel.
Definition: adc_common.c:193
void adc_enable_single_conversion_complete_interrupt(uint32_t adc)
Enable single conversion complete interrupt.
Definition: adc_common.c:428
void adc_set_calibration_single_offset(uint32_t adc, uint8_t single_offset)
Set ADC single offset calibration.
Definition: adc_common.c:673
void adc_disable_scan_conversion_complete_interrupt(uint32_t adc)
Disable scan conversion complete interrupt.
Definition: adc_common.c:473
void adc_set_single_prs_trigger(uint32_t adc, uint8_t prssel)
Set single PRS trigger.
Definition: adc_common.c:141
void adc_set_single_conversion_complete_flag(uint32_t adc)
Set single conversion complete flag.
Definition: adc_common.c:535
void adc_set_clock_prescaler(uint32_t adc, uint8_t factor)
Clock division factor.
Definition: adc_common.c:54
void adc_set_scan_reference(uint32_t adc, uint32_t ref)
Set scan reference for acquisition.
Definition: adc_common.c:312
void adc_set_single_right_aligned(uint32_t adc)
Set single right aligned output.
Definition: adc_common.c:224
void adc_set_scan_conversion_complete_flag(uint32_t adc)
Set scan conversion complete flag.
Definition: adc_common.c:553
bool adc_get_single_result_overflow_flag(uint32_t adc)
Get single result overflow flag.
Definition: adc_common.c:484
void adc_enable_single_repeat_conv(uint32_t adc)
Enable single channel repeated conversion.
Definition: adc_common.c:251
void adc_scan_start(uint32_t adc)
Start ADC in scan acquisition.
Definition: adc_common.c:121
void adc_set_scan_acquisition_cycle(uint32_t adc, uint32_t at)
Set scan acquisition cycle.
Definition: adc_common.c:301
void adc_enable_single_result_overflow_interrupt(uint32_t adc)
Enable single result overflow interrupt.
Definition: adc_common.c:410
void adc_set_calibration_single_gain(uint32_t adc, uint8_t single_gain)
Set ADC single gain calibration.
Definition: adc_common.c:663
void adc_set_scan_differential(uint32_t adc)
Set scan differential conversion.
Definition: adc_common.c:381
void adc_set_scan_left_aligned(uint32_t adc)
Set scan left aligned output.
Definition: adc_common.c:354
void adc_set_scan_resolution(uint32_t adc, uint32_t res)
Set scan resolution of conversion.
Definition: adc_common.c:344
void adc_single_stop(uint32_t adc)
Stop ADC in single acquisition.
Definition: adc_common.c:112
void adc_set_warm_up(uint32_t adc, uint8_t clocks)
Set ADC warm up.
Definition: adc_common.c:43
void adc_set_lowpass_filter(uint32_t adc, uint32_t lpfmode)
Set low pass filter mode.
Definition: adc_common.c:65
void adc_set_single_resolution(uint32_t adc, uint32_t res)
Set single resolution of conversion.
Definition: adc_common.c:205
void adc_set_single_single_ended(uint32_t adc)
Set single single-ended conversion.
Definition: adc_common.c:233
void adc_set_single_reference(uint32_t adc, uint32_t ref)
Set single reference for acquisition.
Definition: adc_common.c:182
void adc_set_single_left_aligned(uint32_t adc)
Set single left aligned output.
Definition: adc_common.c:215
void adc_set_calibration_scan_gain(uint32_t adc, uint8_t scan_gain)
Set ADC scan gain calibration.
Definition: adc_common.c:643
void adc_enable_scan_result_overflow_interrupt(uint32_t adc)
Enable scan result overflow interrupt.
Definition: adc_common.c:446
void adc_disable_scan_prs_trigger(uint32_t adc)
Disable scan PRS Triggering.
Definition: adc_common.c:291
void adc_disable_single_result_overflow_interrupt(uint32_t adc)
Disable single result overflow interrupt.
Definition: adc_common.c:419
void adc_set_scan_prs_trigger(uint32_t adc, uint8_t prssel)
Set scan PRS trigger.
Definition: adc_common.c:271
void adc_clear_scan_conversion_complete_flag(uint32_t adc)
Clear scan conversion complete flag.
Definition: adc_common.c:589
void adc_clear_scan_result_overflow_flag(uint32_t adc)
Clear scan result overflow flag.
Definition: adc_common.c:580
void adc_disable_single_conversion_complete_interrupt(uint32_t adc)
Disable single conversion complete interrupt.
Definition: adc_common.c:437
uint32_t adc_scan_data_peak(uint32_t adc)
Get result from last scan conversion (peak) Reading result using this function will not clear SCANDV ...
Definition: adc_common.c:633
void adc_clear_single_conversion_complete_flag(uint32_t adc)
Clear single conversion complete flag.
Definition: adc_common.c:571
void adc_set_calibration_scan_offset(uint32_t adc, uint8_t scan_offset)
Set ADC scan offset calibration.
Definition: adc_common.c:653
uint32_t adc_scan_data(uint32_t adc)
Get result from last scan conversion.
Definition: adc_common.c:609