SAM4SD32 (SAM4S-EK2)
Loading...
Searching...
No Matches
adc.h
Go to the documentation of this file.
1
33/*
34 * Support and FAQ: visit <a href="https://www.microchip.com/support/">Microchip Support</a>
35 */
36
37#ifndef ADC_H_INCLUDED
38#define ADC_H_INCLUDED
39
40#include "compiler.h"
41
43
44#ifdef __cplusplus
45extern "C" {
46#endif
49
50/* The max ADC clock freq definition*/
51#if !SAM4C && !SAM4CP && !SAM4CM
52#define ADC_FREQ_MAX 20000000
53#else
54#define ADC_FREQ_MAX 16000000
55#endif
56/* The min ADC clock freq definition*/
57#define ADC_FREQ_MIN 1000000
58/* The normal ADC startup time*/
59#define ADC_STARTUP_NORM 40
60/* The fast ADC startup time*/
61#define ADC_STARTUP_FAST 12
62
63/* Definitions for ADC resolution */
64#if SAM3S || SAM4S || SAM3XA
66 ADC_10_BITS = ADC_MR_LOWRES_BITS_10, /* ADC 10-bit resolution */
67 ADC_12_BITS = ADC_MR_LOWRES_BITS_12 /* ADC 12-bit resolution */
68};
69#elif SAM3N
71 ADC_8_BITS = ADC_MR_LOWRES_BITS_8, /* ADC 8-bit resolution */
72 ADC_10_BITS = ADC_MR_LOWRES_BITS_10 /* ADC 10-bit resolution */
73};
74#elif SAM3U
76 ADC_8_BITS = ADC_MR_LOWRES_BITS_8, /* ADC 8-bit resolution */
77 ADC_10_BITS = ADC12B_MR_LOWRES_BITS_10, /* ADC 10-bit resolution */
78 ADC_12_BITS = ADC12B_MR_LOWRES_BITS_12 /* ADC 12-bit resolution */
79};
80#elif SAM4C || SAM4CP || SAM4CM
82 ADC_8_BITS = ADC_MR_LOWRES_BITS_8, /* ADC 8-bit resolution */
83 ADC_10_BITS = ADC_MR_LOWRES_BITS_10, /* ADC 10-bit resolution */
84 ADC_11_BITS = ADC_EMR_OSR_OSR4, /* ADC 11-bit resolution */
85 ADC_12_BITS = ADC_EMR_OSR_OSR16 /* ADC 12-bit resolution */
86};
87#endif
88
89/* Definitions for ADC trigger */
91 /* Starting a conversion is only possible by software. */
93 /* External trigger */
95 /* TIO Output of the Timer Counter Channel 0 */
97 /* TIO Output of the Timer Counter Channel 1 */
99 /* TIO Output of the Timer Counter Channel 2 */
101#if SAM4C || SAM4CP || SAM4CM
102 /* TIO Output of the Timer Counter Channel 3 */
103 ADC_TRIG_TIO_CH_3 = ADC_MR_TRGSEL_ADC_TRIG3 | ADC_MR_TRGEN,
104 /* TIO Output of the Timer Counter Channel 4 */
105 ADC_TRIG_TIO_CH_4 = ADC_MR_TRGSEL_ADC_TRIG4 | ADC_MR_TRGEN,
106 /* TIO Output of the Timer Counter Channel 5 */
107 ADC_TRIG_TIO_CH_5 = ADC_MR_TRGSEL_ADC_TRIG5 | ADC_MR_TRGEN,
108 /* TIO Output of the Timer Counter Channel 6 */
109 ADC_TRIG_TIO_CH_6 = ADC_MR_TRGSEL_ADC_TRIG6 | ADC_MR_TRGEN,
110#endif
111#if SAM3S || SAM4S || SAM3XA || SAM3U
112 /* PWM Event Line 0 */
114 /* PWM Event Line 1 */
116#endif
117};
118
119#if SAM3U
120/* Definitions for ADC trigger */
121enum adc12b_trigger_t {
122 /* Starting a conversion is only possible by software. */
123 ADC12B_TRIG_SW = ADC12B_MR_TRGEN_DIS,
124 /* External trigger */
125 ADC12B_TRIG_EXT = ADC12B_MR_TRGSEL_ADC_TRIG0 | ADC12B_MR_TRGEN,
126 /* TIO Output of the Timer Counter Channel 0 */
127 ADC12B_TRIG_TIO_CH_0 = ADC12B_MR_TRGSEL_ADC_TRIG1 | ADC12B_MR_TRGEN,
128 /* TIO Output of the Timer Counter Channel 1 */
129 ADC12B_TRIG_TIO_CH_1 = ADC12B_MR_TRGSEL_ADC_TRIG2 | ADC12B_MR_TRGEN,
130 /* TIO Output of the Timer Counter Channel 2 */
131 ADC12B_TRIG_TIO_CH_2 = ADC12B_MR_TRGSEL_ADC_TRIG3 | ADC12B_MR_TRGEN,
132 /* PWM Event Line 0 */
133 ADC12B_TRIG_PWM_EVENT_LINE_0 = ADC12B_MR_TRGSEL_ADC_TRIG4 | ADC12B_MR_TRGEN,
134 /* PWM Event Line 1 */
135 ADC12B_TRIG_PWM_EVENT_LINE_1 = ADC12B_MR_TRGSEL_ADC_TRIG5 | ADC12B_MR_TRGEN
136};
137#endif
138
139#if SAM3S || SAM4S || SAM3N || SAM3XA || SAM4C || SAM4CP || SAM4CM
140/* Definitions for ADC channel number */
163#elif SAM3U
164/* Definitions for ADC channel number */
166 ADC_CHANNEL_0 = 0,
167 ADC_CHANNEL_1 = 1,
168 ADC_CHANNEL_2 = 2,
169 ADC_CHANNEL_3 = 3,
170 ADC_CHANNEL_4 = 4,
171 ADC_CHANNEL_5 = 5,
172 ADC_CHANNEL_6 = 6,
173 ADC_CHANNEL_7 = 7,
174};
175#endif
176#if !SAM4C && !SAM4CP && !SAM4CM
177/* Definitions for ADC gain value */
184#endif
185/* Definitions for ADC analog settling time */
186#if SAM3S || SAM4S || SAM3XA
193#endif
194
195#if SAM3S || SAM4S || SAM3N || SAM3XA || SAM4C || SAM4CP || SAM4CM
215#endif
216
217#if SAM3S || SAM4S || SAM3N || SAM3XA || SAM4C || SAM4CP || SAM4CM
218uint32_t adc_init(Adc *p_adc, const uint32_t ul_mck,
219 const uint32_t ul_adc_clock, const enum adc_startup_time startup);
220void adc_configure_trigger(Adc *p_adc, const enum adc_trigger_t trigger,
221 const uint8_t uc_freerun);
222void adc_configure_sequence(Adc *p_adc, const enum adc_channel_num_t ch_list[],
223 const uint8_t uc_num);
224void adc_enable_tag(Adc *p_adc);
225void adc_disable_tag(Adc *p_adc);
226enum adc_channel_num_t adc_get_tag(const Adc *p_adc);
227void adc_start_sequencer(Adc *p_adc);
228void adc_stop_sequencer(Adc *p_adc);
229void adc_set_comparison_mode(Adc *p_adc, const uint8_t uc_mode);
230#if SAM4C || SAM4CP || SAM4CM
231void adc_set_comparison_filter(Adc *p_adc, uint8_t filter);
232#endif
233uint32_t adc_get_comparison_mode(const Adc *p_adc);
234void adc_set_comparison_window(Adc *p_adc, const uint16_t us_low_threshold,
235 const uint16_t us_high_threshold);
237 const enum adc_channel_num_t channel);
238void adc_set_writeprotect(Adc *p_adc, const uint32_t ul_enable);
239uint32_t adc_get_writeprotect_status(const Adc *p_adc);
240void adc_check(Adc* p_adc, const uint32_t ul_mck);
241uint32_t adc_get_overrun_status(const Adc *p_adc);
242#elif SAM3U
243uint32_t adc_init(Adc * p_adc, const uint32_t ul_mck, const uint32_t ul_adc_clock,
244 const uint32_t ul_startuptime);
245void adc_configure_trigger(Adc *p_adc, const enum adc_trigger_t trigger);
246void adc_configure_power_save(Adc *p_adc, const uint8_t uc_sleep);
247#endif
248
249#if SAM3S8 || SAM4S || SAM3N || SAM3SD8
250void adc_configure_power_save(Adc *p_adc, const uint8_t uc_sleep,
251 const uint8_t uc_fwup);
252#elif SAM3U || SAM4C || SAM4CP || SAM4CM
253void adc_configure_power_save(Adc *p_adc, const uint8_t uc_sleep);
254#endif
255void adc_set_resolution(Adc *p_adc, const enum adc_resolution_t resolution);
256void adc_start(Adc *p_adc);
257void adc_reset(Adc *p_adc);
258void adc_enable_channel(Adc *p_adc, const enum adc_channel_num_t adc_ch);
259void adc_disable_channel(Adc *p_adc, const enum adc_channel_num_t adc_ch);
260void adc_enable_all_channel(Adc *p_adc);
261void adc_disable_all_channel(Adc *p_adc);
262uint32_t adc_get_channel_status(const Adc *p_adc, const enum adc_channel_num_t adc_ch);
263uint32_t adc_get_channel_value(const Adc *p_adc,const enum adc_channel_num_t adc_ch);
264uint32_t adc_get_latest_value(const Adc *p_adc);
265uint32_t adc_get_actual_adc_clock(const Adc *p_adc, const uint32_t ul_mck);
266void adc_enable_interrupt(Adc *p_adc, const uint32_t ul_source);
267void adc_disable_interrupt(Adc *p_adc, const uint32_t ul_source);
268uint32_t adc_get_status(const Adc *p_adc);
269uint32_t adc_get_interrupt_mask(const Adc *p_adc);
270Pdc *adc_get_pdc_base(const Adc *p_adc);
271
272#if SAM3S || SAM4S || SAM3XA
273void adc_configure_timing(Adc *p_adc, const uint8_t uc_tracking,
274 const enum adc_settling_time_t settling, const uint8_t uc_transfer);
275void adc_enable_anch( Adc *p_adc );
276void adc_disable_anch( Adc *p_adc );
277void adc_enable_channel_differential_input(Adc *p_adc, const enum adc_channel_num_t channel);
278void adc_disable_channel_differential_input(Adc *p_adc, const enum adc_channel_num_t channel);
279void adc_enable_channel_input_offset(Adc *p_adc, const enum adc_channel_num_t channel);
280void adc_disable_channel_input_offset(Adc *p_adc, const enum adc_channel_num_t channel);
281void adc_set_channel_input_gain(Adc *p_adc, const enum adc_channel_num_t channel,
282 const enum adc_gainvalue_t uc_gain);
283void adc_set_bias_current(Adc *p_adc, const uint8_t uc_ibctl);
284#elif SAM3N || SAM4C || SAM4CP || SAM4CM
285void adc_configure_timing(Adc *p_adc, const uint8_t uc_tracking);
286#elif SAM3U
287void adc_configure_timing(Adc *p_adc, const uint32_t ul_sh);
288#endif
289
290#if SAM3S || SAM4S || SAM3XA || SAM4C || SAM4CP || SAM4CM
291void adc_enable_ts(Adc *p_adc);
292void adc_disable_ts(Adc *p_adc);
293#if SAM4C || SAM4CP || SAM4CM
295enum adc_temp_cmp_mode {
296 ADC_TEMP_CMP_MODE_0 = ADC_TEMPMR_TEMPCMPMOD_LOW,
297 ADC_TEMP_CMP_MODE_1 = ADC_TEMPMR_TEMPCMPMOD_HIGH,
298 ADC_TEMP_CMP_MODE_2 = ADC_TEMPMR_TEMPCMPMOD_IN,
299 ADC_TEMP_CMP_MODE_3 = ADC_TEMPMR_TEMPCMPMOD_OUT
300};
301void adc_configure_ts_comparison(Adc *p_adc, enum adc_temp_cmp_mode mode,
302 uint16_t low_threshold, uint16_t high_threshold);
303#endif
304#endif
305
306#if SAM3S8 || SAM3SD8 || SAM4S
307void adc_set_calibmode(Adc *p_adc);
308#endif
309
310#if SAM4C || SAM4CP | SAM4CM
311void adc_set_averaging_trigger(Adc *p_adc, bool multi);
312enum adc_internal_ref_voltage {
313 ADC_INTERNAL_REF_2426MV = 0,
314 ADC_INTERNAL_REF_2305MV,
315 ADC_INTERNAL_REF_2184MV,
316 ADC_INTERNAL_REF_2063MV,
317 ADC_INTERNAL_REF_1941MV,
318 ADC_INTERNAL_REF_1820MV,
319 ADC_INTERNAL_REF_1699MV,
320 ADC_INTERNAL_REF_1578MV,
321 ADC_INTERNAL_REF_3396MV,
322 ADC_INTERNAL_REF_3275MV,
323 ADC_INTERNAL_REF_3154MV,
324 ADC_INTERNAL_REF_3032MV,
325 ADC_INTERNAL_REF_2911MV,
326 ADC_INTERNAL_REF_2790MV,
327 ADC_INTERNAL_REF_2699MV,
328 ADC_INTERNAL_REF_2547MV,
329};
330struct adc_internal_ref {
331 bool adc_internal_ref_change_enable;
332 enum adc_internal_ref_voltage volt;
333 bool adc_force_internal_ref;
334 bool adc_internal_ref_on;
335};
336enum status_code adc_set_internal_reference_voltage(Adc *p_adc,
337 struct adc_internal_ref *ref);
338#endif
339
340#if SAM3U
341uint32_t adc12b_init(Adc12b *p_adc, const uint32_t ul_mck, const uint32_t ul_adc_clock,
342 const uint32_t ul_startuptime, const uint32_t ul_offmode_startuptime);
343void adc12b_set_resolution(Adc12b *p_adc, const enum adc_resolution_t resolution);
344void adc12b_configure_trigger(Adc12b *p_adc, const enum adc12b_trigger_t trigger);
345void adc12b_configure_power_save(Adc12b *p_adc, const uint8_t uc_sleep,
346 const uint8_t uc_offmode);
347void adc12b_configure_timing(Adc12b *p_adc, const uint32_t ul_sh);
348void adc12b_start(Adc12b *p_adc);
349void adc12b_reset(Adc12b *p_adc);
350void adc12b_enable_channel(Adc12b *p_adc, const enum adc_channel_num_t adc_ch);
351void adc12b_disable_channel(Adc12b *p_adc, const enum adc_channel_num_t adc_ch);
352void adc12b_enable_all_channel(Adc12b *p_adc);
353void adc12b_disable_all_channel(Adc12b *p_adc);
354uint32_t adc12b_get_channel_status(const Adc12b *p_adc,const enum adc_channel_num_t adc_ch);
355uint32_t adc12b_get_channel_value(const Adc12b *p_adc, const enum adc_channel_num_t adc_ch);
356uint32_t adc12b_get_latest_value(const Adc12b *p_adc);
357void adc12b_enable_differential_input(Adc12b *p_adc);
358void adc12b_disable_differential_input(Adc12b *p_adc);
359void adc12b_enable_input_offset(Adc12b *p_adc);
360void adc12b_disable_input_offset(Adc12b *p_adc);
361void adc12b_set_input_gain(Adc12b *p_adc, const enum adc_gainvalue_t uc_gain);
362uint32_t adc12b_get_actual_adc_clock(const Adc12b *p_adc, const uint32_t ul_mck);
363void adc12b_enable_interrupt(Adc12b *p_adc, const uint32_t ul_source);
364void adc12b_disable_interrupt(Adc12b *p_adc, const uint32_t ul_source);
365uint32_t adc12b_get_interrupt_mask(const Adc12b *p_adc);
366uint32_t adc12b_get_status(const Adc12b *p_adc);
367void adc12b_set_bias_current(Adc12b *p_adc, const uint8_t uc_ibctl);
368Pdc *adc12b_get_pdc_base(const Adc12b *p_adc);
369#endif
370
372
373#ifdef __cplusplus
374}
375#endif
378
583#endif /* ADC_H_INCLUDED */
adc_gainvalue_t
Definition adc.h:178
@ ADC_GAINVALUE_3
Definition adc.h:182
@ ADC_GAINVALUE_0
Definition adc.h:179
@ ADC_GAINVALUE_2
Definition adc.h:181
@ ADC_GAINVALUE_1
Definition adc.h:180
adc_trigger_t
Definition adc.h:90
@ ADC_TRIG_TIO_CH_0
Definition adc.h:96
@ ADC_TRIG_EXT
Definition adc.h:94
@ ADC_TRIG_SW
Definition adc.h:92
@ ADC_TRIG_TIO_CH_1
Definition adc.h:98
@ ADC_TRIG_PWM_EVENT_LINE_1
Definition adc.h:115
@ ADC_TRIG_PWM_EVENT_LINE_0
Definition adc.h:113
@ ADC_TRIG_TIO_CH_2
Definition adc.h:100
adc_channel_num_t
Definition adc.h:141
@ ADC_CHANNEL_9
Definition adc.h:154
@ ADC_CHANNEL_1
Definition adc.h:143
@ ADC_CHANNEL_8
Definition adc.h:153
@ ADC_CHANNEL_4
Definition adc.h:146
@ ADC_CHANNEL_12
Definition adc.h:157
@ ADC_CHANNEL_0
Definition adc.h:142
@ ADC_CHANNEL_3
Definition adc.h:145
@ ADC_CHANNEL_14
Definition adc.h:159
@ ADC_CHANNEL_10
Definition adc.h:155
@ ADC_CHANNEL_13
Definition adc.h:158
@ ADC_CHANNEL_2
Definition adc.h:144
@ ADC_CHANNEL_6
Definition adc.h:148
@ ADC_TEMPERATURE_SENSOR
Definition adc.h:160
@ ADC_CHANNEL_7
Definition adc.h:152
@ ADC_CHANNEL_5
Definition adc.h:147
@ ADC_CHANNEL_11
Definition adc.h:156
adc_settling_time_t
Definition adc.h:187
@ ADC_SETTLING_TIME_3
Definition adc.h:191
@ ADC_SETTLING_TIME_1
Definition adc.h:189
@ ADC_SETTLING_TIME_2
Definition adc.h:190
@ ADC_SETTLING_TIME_0
Definition adc.h:188
adc_startup_time
Definitions for ADC Start Up Time.
Definition adc.h:197
@ ADC_STARTUP_TIME_1
Definition adc.h:199
@ ADC_STARTUP_TIME_10
Definition adc.h:208
@ ADC_STARTUP_TIME_3
Definition adc.h:201
@ ADC_STARTUP_TIME_5
Definition adc.h:203
@ ADC_STARTUP_TIME_4
Definition adc.h:202
@ ADC_STARTUP_TIME_9
Definition adc.h:207
@ ADC_STARTUP_TIME_14
Definition adc.h:212
@ ADC_STARTUP_TIME_6
Definition adc.h:204
@ ADC_STARTUP_TIME_11
Definition adc.h:209
@ ADC_STARTUP_TIME_2
Definition adc.h:200
@ ADC_STARTUP_TIME_7
Definition adc.h:205
@ ADC_STARTUP_TIME_8
Definition adc.h:206
@ ADC_STARTUP_TIME_15
Definition adc.h:213
@ ADC_STARTUP_TIME_0
Definition adc.h:198
@ ADC_STARTUP_TIME_13
Definition adc.h:211
@ ADC_STARTUP_TIME_12
Definition adc.h:210
adc_resolution_t
Definition adc.h:65
@ ADC_10_BITS
Definition adc.h:66
@ ADC_12_BITS
Definition adc.h:67
#define ADC_MR_TRGEN_DIS
(ADC_MR) Hardware triggers are disabled.
#define ADC_MR_STARTUP_SUT960
(ADC_MR) 960 periods of ADCClock
#define ADC_MR_LOWRES_BITS_12
(ADC_MR) 12-bit resolution
#define ADC_MR_TRGEN
(ADC_MR) Trigger Enable
#define ADC_MR_STARTUP_SUT8
(ADC_MR) 8 periods of ADCClock
#define ADC_MR_STARTUP_SUT832
(ADC_MR) 832 periods of ADCClock
#define ADC_MR_STARTUP_SUT768
(ADC_MR) 768 periods of ADCClock
#define ADC_MR_STARTUP_SUT64
(ADC_MR) 64 periods of ADCClock
#define ADC_MR_TRGSEL_ADC_TRIG4
(ADC_MR) PWM Event Line 0
#define ADC_MR_STARTUP_SUT96
(ADC_MR) 96 periods of ADCClock
#define ADC_MR_SETTLING_AST9
(ADC_MR) 9 periods of ADCClock
#define ADC_MR_STARTUP_SUT80
(ADC_MR) 80 periods of ADCClock
#define ADC_MR_SETTLING_AST5
(ADC_MR) 5 periods of ADCClock
#define ADC_MR_STARTUP_SUT896
(ADC_MR) 896 periods of ADCClock
#define ADC_MR_STARTUP_SUT0
(ADC_MR) 0 periods of ADCClock
#define ADC_MR_LOWRES_BITS_10
(ADC_MR) 10-bit resolution
#define ADC_MR_STARTUP_SUT640
(ADC_MR) 640 periods of ADCClock
#define ADC_MR_TRGSEL_ADC_TRIG3
(ADC_MR) TIO Output of the Timer Counter Channel 2
#define ADC_MR_SETTLING_AST3
(ADC_MR) 3 periods of ADCClock
#define ADC_MR_TRGSEL_ADC_TRIG5
(ADC_MR) PWM Event Line 1
#define ADC_MR_STARTUP_SUT24
(ADC_MR) 24 periods of ADCClock
#define ADC_MR_TRGSEL_ADC_TRIG1
(ADC_MR) TIO Output of the Timer Counter Channel 0
#define ADC_MR_STARTUP_SUT512
(ADC_MR) 512 periods of ADCClock
#define ADC_MR_STARTUP_SUT112
(ADC_MR) 112 periods of ADCClock
#define ADC_MR_SETTLING_AST17
(ADC_MR) 17 periods of ADCClock
#define ADC_MR_STARTUP_SUT576
(ADC_MR) 576 periods of ADCClock
#define ADC_MR_STARTUP_SUT704
(ADC_MR) 704 periods of ADCClock
#define ADC_MR_TRGSEL_ADC_TRIG2
(ADC_MR) TIO Output of the Timer Counter Channel 1
#define ADC_MR_STARTUP_SUT16
(ADC_MR) 16 periods of ADCClock
#define ADC_MR_TRGSEL_ADC_TRIG0
(ADC_MR) External trigger
void adc_disable_ts(Adc *p_adc)
Turn off temperature sensor.
Definition adc.c:748
void adc_configure_trigger(Adc *p_adc, const enum adc_trigger_t trigger, const uint8_t uc_freerun)
Configure conversion trigger and free run mode.
Definition adc.c:168
uint32_t adc_get_latest_value(const Adc *p_adc)
Read the last ADC result data.
Definition adc.c:431
void adc_disable_channel_differential_input(Adc *p_adc, const enum adc_channel_num_t channel)
Disable differential input for the specified channel.
Definition adc.c:568
void adc_set_comparison_channel(Adc *p_adc, const enum adc_channel_num_t channel)
Configure comparison selected channel.
Definition adc.c:538
void adc_configure_timing(Adc *p_adc, const uint8_t uc_tracking, const enum adc_settling_time_t settling, const uint8_t uc_transfer)
Configure ADC timing.
Definition adc.c:261
void adc_set_resolution(Adc *p_adc, const enum adc_resolution_t resolution)
Configure the conversion resolution.
Definition adc.c:134
void adc_start_sequencer(Adc *p_adc)
Enable conversion sequencer.
Definition adc.c:479
uint32_t adc_get_writeprotect_status(const Adc *p_adc)
Indicate write protect status.
Definition adc.c:777
void adc_set_calibmode(Adc *p_adc)
Set ADC auto calibration mode.
Definition adc.c:621
void adc_stop_sequencer(Adc *p_adc)
Disable conversion sequencer.
Definition adc.c:489
void adc_set_bias_current(Adc *p_adc, const uint8_t uc_ibctl)
Adapt performance versus power consumption.
Definition adc.c:728
void adc_configure_sequence(Adc *p_adc, const enum adc_channel_num_t ch_list[], const uint8_t uc_num)
Configure conversion sequence.
Definition adc.c:228
enum adc_channel_num_t adc_get_tag(const Adc *p_adc)
Indicate the last converted channel.
Definition adc.c:468
void adc_disable_channel_input_offset(Adc *p_adc, const enum adc_channel_num_t channel)
Disable analog signal offset for the specified channel.
Definition adc.c:593
uint32_t adc_get_status(const Adc *p_adc)
Get ADC interrupt and overrun error status.
Definition adc.c:676
uint32_t adc_get_overrun_status(const Adc *p_adc)
Get ADC interrupt and overrun error status.
Definition adc.c:688
void adc_disable_all_channel(Adc *p_adc)
Disable all ADC channel.
Definition adc.c:382
void adc_disable_tag(Adc *p_adc)
Disable TAG option.
Definition adc.c:453
void adc_disable_channel(Adc *p_adc, const enum adc_channel_num_t adc_ch)
Disable the specified ADC channel.
Definition adc.c:372
void adc_disable_interrupt(Adc *p_adc, const uint32_t ul_source)
Disable ADC interrupts.
Definition adc.c:663
void adc_start(Adc *p_adc)
Start analog-to-digital conversion.
Definition adc.c:326
void adc_reset(Adc *p_adc)
Reset ADC.
Definition adc.c:336
uint32_t adc_get_interrupt_mask(const Adc *p_adc)
Read ADC interrupt mask.
Definition adc.c:713
void adc_enable_tag(Adc *p_adc)
Enable TAG option so that the number of the last converted channel can be indicated.
Definition adc.c:443
uint32_t adc_init(Adc *p_adc, const uint32_t ul_mck, const uint32_t ul_adc_clock, const enum adc_startup_time startup)
Initialize the given ADC with the specified ADC clock and startup time.
Definition adc.c:70
void adc_set_comparison_mode(Adc *p_adc, const uint8_t uc_mode)
Configure comparison mode.
Definition adc.c:500
void adc_disable_anch(Adc *p_adc)
Disable analog change.
Definition adc.c:311
void adc_enable_channel_differential_input(Adc *p_adc, const enum adc_channel_num_t channel)
Enable differential input for the specified channel.
Definition adc.c:557
void adc_enable_all_channel(Adc *p_adc)
Enable all ADC channels.
Definition adc.c:357
void adc_set_channel_input_gain(Adc *p_adc, const enum adc_channel_num_t channel, const enum adc_gainvalue_t uc_gain)
Configure input gain for the specified channel.
Definition adc.c:608
void adc_enable_interrupt(Adc *p_adc, const uint32_t ul_source)
Enable ADC interrupts.
Definition adc.c:652
void adc_enable_anch(Adc *p_adc)
Enable analog change.
Definition adc.c:299
uint32_t adc_get_channel_value(const Adc *p_adc, const enum adc_channel_num_t adc_ch)
Read the ADC result data of the specified channel.
Definition adc.c:413
void adc_configure_power_save(Adc *p_adc, const uint8_t uc_sleep, const uint8_t uc_fwup)
Configures ADC power saving mode.
Definition adc.c:198
uint32_t adc_get_actual_adc_clock(const Adc *p_adc, const uint32_t ul_mck)
Return the actual ADC clock.
Definition adc.c:635
void adc_set_writeprotect(Adc *p_adc, const uint32_t ul_enable)
Enable or disable write protection of ADC registers.
Definition adc.c:764
Pdc * adc_get_pdc_base(const Adc *p_adc)
Get PDC registers base address.
Definition adc.c:906
void adc_enable_channel(Adc *p_adc, const enum adc_channel_num_t adc_ch)
Enable the specified ADC channel.
Definition adc.c:347
void adc_check(Adc *p_adc, const uint32_t ul_mck)
Check ADC configurations.
Definition adc.c:838
void adc_enable_channel_input_offset(Adc *p_adc, const enum adc_channel_num_t channel)
Enable analog signal offset for the specified channel.
Definition adc.c:582
void adc_set_comparison_window(Adc *p_adc, const uint16_t us_low_threshold, const uint16_t us_high_threshold)
Configure ADC compare window.
Definition adc.c:525
uint32_t adc_get_comparison_mode(const Adc *p_adc)
Get comparison mode.
Definition adc.c:513
uint32_t adc_get_channel_status(const Adc *p_adc, const enum adc_channel_num_t adc_ch)
Read the ADC channel status.
Definition adc.c:400
void adc_enable_ts(Adc *p_adc)
Turn on temperature sensor.
Definition adc.c:738
Adc hardware registers.