Analog-to-Digital Converter (ADC/ADC12B) driver for SAM.
Copyright (c) 2011-2018 Microchip Technology Inc. and its subsidiaries.
#include "compiler.h"
Data Structures | |
struct | adc_internal_ref |
Macros | |
#define | ADC_FREQ_MAX 20000000 |
#define | ADC_FREQ_MIN 1000000 |
#define | ADC_STARTUP_FAST 12 |
#define | ADC_STARTUP_NORM 40 |
Enumerations | |
enum | adc12b_trigger_t { ADC12B_TRIG_SW = ADC12B_MR_TRGEN_DIS, ADC12B_TRIG_EXT = ADC12B_MR_TRGSEL_ADC_TRIG0 | ADC12B_MR_TRGEN, ADC12B_TRIG_TIO_CH_0 = ADC12B_MR_TRGSEL_ADC_TRIG1 | ADC12B_MR_TRGEN, ADC12B_TRIG_TIO_CH_1 = ADC12B_MR_TRGSEL_ADC_TRIG2 | ADC12B_MR_TRGEN, ADC12B_TRIG_TIO_CH_2 = ADC12B_MR_TRGSEL_ADC_TRIG3 | ADC12B_MR_TRGEN, ADC12B_TRIG_PWM_EVENT_LINE_0 = ADC12B_MR_TRGSEL_ADC_TRIG4 | ADC12B_MR_TRGEN, ADC12B_TRIG_PWM_EVENT_LINE_1 = ADC12B_MR_TRGSEL_ADC_TRIG5 | ADC12B_MR_TRGEN } |
enum | adc_channel_num_t { ADC_CHANNEL_0 = 0, ADC_CHANNEL_1 = 1, ADC_CHANNEL_2 = 2, ADC_CHANNEL_3 = 3, ADC_CHANNEL_4 = 4, ADC_CHANNEL_5 = 5, ADC_CHANNEL_6 = 6, ADC_TEMPERATURE_SENSOR = 7 } |
enum | adc_gainvalue_t { ADC_GAINVALUE_0 = 0, ADC_GAINVALUE_1 = 1, ADC_GAINVALUE_2 = 2, ADC_GAINVALUE_3 = 3 } |
enum | adc_internal_ref_voltage { ADC_INTERNAL_REF_2426MV = 0, ADC_INTERNAL_REF_2305MV, ADC_INTERNAL_REF_2184MV, ADC_INTERNAL_REF_2063MV, ADC_INTERNAL_REF_1941MV, ADC_INTERNAL_REF_1820MV, ADC_INTERNAL_REF_1699MV, ADC_INTERNAL_REF_1578MV, ADC_INTERNAL_REF_3396MV, ADC_INTERNAL_REF_3275MV, ADC_INTERNAL_REF_3154MV, ADC_INTERNAL_REF_3032MV, ADC_INTERNAL_REF_2911MV, ADC_INTERNAL_REF_2790MV, ADC_INTERNAL_REF_2699MV, ADC_INTERNAL_REF_2547MV } |
enum | adc_resolution_t { ADC_10_BITS = ADC_MR_LOWRES_BITS_10, ADC_12_BITS = ADC_MR_LOWRES_BITS_12 } |
enum | adc_settling_time_t { ADC_SETTLING_TIME_0 = ADC_MR_SETTLING_AST3, ADC_SETTLING_TIME_1 = ADC_MR_SETTLING_AST5, ADC_SETTLING_TIME_2 = ADC_MR_SETTLING_AST9, ADC_SETTLING_TIME_3 = ADC_MR_SETTLING_AST17 } |
enum | adc_startup_time { ADC_STARTUP_TIME_0 = ADC_MR_STARTUP_SUT0, ADC_STARTUP_TIME_1 = ADC_MR_STARTUP_SUT8, ADC_STARTUP_TIME_2 = ADC_MR_STARTUP_SUT16, ADC_STARTUP_TIME_3 = ADC_MR_STARTUP_SUT24, ADC_STARTUP_TIME_4 = ADC_MR_STARTUP_SUT64, ADC_STARTUP_TIME_5 = ADC_MR_STARTUP_SUT80, ADC_STARTUP_TIME_6 = ADC_MR_STARTUP_SUT96, ADC_STARTUP_TIME_7 = ADC_MR_STARTUP_SUT112, ADC_STARTUP_TIME_8 = ADC_MR_STARTUP_SUT512, ADC_STARTUP_TIME_9 = ADC_MR_STARTUP_SUT576, ADC_STARTUP_TIME_10 = ADC_MR_STARTUP_SUT640, ADC_STARTUP_TIME_11 = ADC_MR_STARTUP_SUT704, ADC_STARTUP_TIME_12 = ADC_MR_STARTUP_SUT768, ADC_STARTUP_TIME_13 = ADC_MR_STARTUP_SUT832, ADC_STARTUP_TIME_14 = ADC_MR_STARTUP_SUT896, ADC_STARTUP_TIME_15 = ADC_MR_STARTUP_SUT960 } |
Definitions for ADC Start Up Time. More... | |
enum | adc_temp_cmp_mode { ADC_TEMP_CMP_MODE_0 = ADC_TEMPMR_TEMPCMPMOD_LOW, ADC_TEMP_CMP_MODE_1 = ADC_TEMPMR_TEMPCMPMOD_HIGH, ADC_TEMP_CMP_MODE_2 = ADC_TEMPMR_TEMPCMPMOD_IN, ADC_TEMP_CMP_MODE_3 = ADC_TEMPMR_TEMPCMPMOD_OUT } |
Definitions for Temperature Comparison Mode. More... | |
enum | adc_trigger_t { ADC_TRIG_SW = ADC_MR_TRGEN_DIS, ADC_TRIG_EXT = ADC_MR_TRGSEL_ADC_TRIG0 | ADC_MR_TRGEN, ADC_TRIG_TIO_CH_0 = ADC_MR_TRGSEL_ADC_TRIG1 | ADC_MR_TRGEN, ADC_TRIG_TIO_CH_1 = ADC_MR_TRGSEL_ADC_TRIG2 | ADC_MR_TRGEN, ADC_TRIG_TIO_CH_2 = ADC_MR_TRGSEL_ADC_TRIG3 | ADC_MR_TRGEN, ADC_TRIG_TIO_CH_3 = ADC_MR_TRGSEL_ADC_TRIG3 | ADC_MR_TRGEN, ADC_TRIG_TIO_CH_4 = ADC_MR_TRGSEL_ADC_TRIG4 | ADC_MR_TRGEN, ADC_TRIG_TIO_CH_5 = ADC_MR_TRGSEL_ADC_TRIG5 | ADC_MR_TRGEN, ADC_TRIG_TIO_CH_6 = ADC_MR_TRGSEL_ADC_TRIG6 | ADC_MR_TRGEN, ADC_TRIG_PWM_EVENT_LINE_0 = ADC_MR_TRGSEL_ADC_TRIG4 | ADC_MR_TRGEN, ADC_TRIG_PWM_EVENT_LINE_1 = ADC_MR_TRGSEL_ADC_TRIG5 | ADC_MR_TRGEN } |
Functions | |
void | adc12b_configure_power_save (Adc12b *p_adc, const uint8_t uc_sleep, const uint8_t uc_offmode) |
void | adc12b_configure_timing (Adc12b *p_adc, const uint32_t ul_sh) |
void | adc12b_configure_trigger (Adc12b *p_adc, const enum adc12b_trigger_t trigger) |
void | adc12b_disable_all_channel (Adc12b *p_adc) |
void | adc12b_disable_channel (Adc12b *p_adc, const enum adc_channel_num_t adc_ch) |
void | adc12b_disable_differential_input (Adc12b *p_adc) |
void | adc12b_disable_input_offset (Adc12b *p_adc) |
void | adc12b_disable_interrupt (Adc12b *p_adc, const uint32_t ul_source) |
void | adc12b_enable_all_channel (Adc12b *p_adc) |
void | adc12b_enable_channel (Adc12b *p_adc, const enum adc_channel_num_t adc_ch) |
void | adc12b_enable_differential_input (Adc12b *p_adc) |
void | adc12b_enable_input_offset (Adc12b *p_adc) |
void | adc12b_enable_interrupt (Adc12b *p_adc, const uint32_t ul_source) |
uint32_t | adc12b_get_actual_adc_clock (const Adc12b *p_adc, const uint32_t ul_mck) |
uint32_t | adc12b_get_channel_status (const Adc12b *p_adc, const enum adc_channel_num_t adc_ch) |
uint32_t | adc12b_get_channel_value (const Adc12b *p_adc, const enum adc_channel_num_t adc_ch) |
uint32_t | adc12b_get_interrupt_mask (const Adc12b *p_adc) |
uint32_t | adc12b_get_latest_value (const Adc12b *p_adc) |
Pdc * | adc12b_get_pdc_base (const Adc12b *p_adc) |
uint32_t | adc12b_get_status (const Adc12b *p_adc) |
uint32_t | adc12b_init (Adc12b *p_adc, const uint32_t ul_mck, const uint32_t ul_adc_clock, const uint32_t ul_startuptime, const uint32_t ul_offmode_startuptime) |
void | adc12b_reset (Adc12b *p_adc) |
void | adc12b_set_bias_current (Adc12b *p_adc, const uint8_t uc_ibctl) |
void | adc12b_set_input_gain (Adc12b *p_adc, const enum adc_gainvalue_t uc_gain) |
void | adc12b_set_resolution (Adc12b *p_adc, const enum adc_resolution_t resolution) |
void | adc12b_start (Adc12b *p_adc) |
void | adc_check (Adc *p_adc, const uint32_t ul_mck) |
void | adc_configure_power_save (Adc *p_adc, const uint8_t uc_sleep, const uint8_t uc_fwup) |
void | adc_configure_sequence (Adc *p_adc, const enum adc_channel_num_t ch_list[], const uint8_t uc_num) |
void | adc_configure_timing (Adc *p_adc, const uint8_t uc_tracking, const enum adc_settling_time_t settling, const uint8_t uc_transfer) |
void | adc_configure_trigger (Adc *p_adc, const enum adc_trigger_t trigger, const uint8_t uc_freerun) |
void | adc_configure_ts_comparison (Adc *p_adc, enum adc_temp_cmp_mode mode, uint16_t low_threshold, uint16_t high_threshold) |
void | adc_disable_all_channel (Adc *p_adc) |
Disable all ADC channel. More... | |
void | adc_disable_anch (Adc *p_adc) |
void | adc_disable_channel (Adc *p_adc, const enum adc_channel_num_t adc_ch) |
Disable the specified ADC channel. More... | |
void | adc_disable_channel_differential_input (Adc *p_adc, const enum adc_channel_num_t channel) |
void | adc_disable_channel_input_offset (Adc *p_adc, const enum adc_channel_num_t channel) |
void | adc_disable_interrupt (Adc *p_adc, const uint32_t ul_source) |
Disable ADC interrupts. More... | |
void | adc_disable_tag (Adc *p_adc) |
void | adc_disable_ts (Adc *p_adc) |
void | adc_enable_all_channel (Adc *p_adc) |
Enable all ADC channels. More... | |
void | adc_enable_anch (Adc *p_adc) |
void | adc_enable_channel (Adc *p_adc, const enum adc_channel_num_t adc_ch) |
Enable the specified ADC channel. More... | |
void | adc_enable_channel_differential_input (Adc *p_adc, const enum adc_channel_num_t channel) |
void | adc_enable_channel_input_offset (Adc *p_adc, const enum adc_channel_num_t channel) |
void | adc_enable_interrupt (Adc *p_adc, const uint32_t ul_source) |
Enable ADC interrupts. More... | |
void | adc_enable_tag (Adc *p_adc) |
void | adc_enable_ts (Adc *p_adc) |
uint32_t | adc_get_actual_adc_clock (const Adc *p_adc, const uint32_t ul_mck) |
Return the actual ADC clock. More... | |
uint32_t | adc_get_channel_status (const Adc *p_adc, const enum adc_channel_num_t adc_ch) |
Read the ADC channel status. More... | |
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. More... | |
uint32_t | adc_get_comparison_mode (const Adc *p_adc) |
uint32_t | adc_get_interrupt_mask (const Adc *p_adc) |
Read ADC interrupt mask. More... | |
uint32_t | adc_get_latest_value (const Adc *p_adc) |
Read the last ADC result data. More... | |
uint32_t | adc_get_overrun_status (const Adc *p_adc) |
Pdc * | adc_get_pdc_base (const Adc *p_adc) |
Get PDC registers base address. More... | |
uint32_t | adc_get_status (const Adc *p_adc) |
enum adc_channel_num_t | adc_get_tag (const Adc *p_adc) |
uint32_t | adc_get_writeprotect_status (const Adc *p_adc) |
uint32_t | adc_init (Adc *p_adc, const uint32_t ul_mck, const uint32_t ul_adc_clock, const enum adc_startup_time startup) |
void | adc_reset (Adc *p_adc) |
Reset ADC. More... | |
void | adc_set_averaging_trigger (Adc *p_adc, bool multi) |
void | adc_set_bias_current (Adc *p_adc, const uint8_t uc_ibctl) |
void | adc_set_calibmode (Adc *p_adc) |
void | adc_set_channel_input_gain (Adc *p_adc, const enum adc_channel_num_t channel, const enum adc_gainvalue_t uc_gain) |
void | adc_set_comparison_channel (Adc *p_adc, const enum adc_channel_num_t channel) |
void | adc_set_comparison_filter (Adc *p_adc, uint8_t filter) |
void | adc_set_comparison_mode (Adc *p_adc, const uint8_t uc_mode) |
void | adc_set_comparison_window (Adc *p_adc, const uint16_t us_low_threshold, const uint16_t us_high_threshold) |
enum status_code | adc_set_internal_reference_voltage (Adc *p_adc, struct adc_internal_ref *ref) |
void | adc_set_resolution (Adc *p_adc, const enum adc_resolution_t resolution) |
Configure the conversion resolution. More... | |
void | adc_set_writeprotect (Adc *p_adc, const uint32_t ul_enable) |
void | adc_start (Adc *p_adc) |
Start analog-to-digital conversion. More... | |
void | adc_start_sequencer (Adc *p_adc) |
void | adc_stop_sequencer (Adc *p_adc) |
#define ADC_FREQ_MAX 20000000 |
#define ADC_FREQ_MIN 1000000 |
#define ADC_STARTUP_FAST 12 |
#define ADC_STARTUP_NORM 40 |
enum adc12b_trigger_t |
enum adc_channel_num_t |
enum adc_gainvalue_t |
enum adc_resolution_t |
enum adc_settling_time_t |
enum adc_startup_time |
Definitions for ADC Start Up Time.
enum adc_temp_cmp_mode |
enum adc_trigger_t |
void adc12b_configure_power_save | ( | Adc12b * | p_adc, |
const uint8_t | uc_sleep, | ||
const uint8_t | uc_offmode | ||
) |
void adc12b_configure_timing | ( | Adc12b * | p_adc, |
const uint32_t | ul_sh | ||
) |
void adc12b_configure_trigger | ( | Adc12b * | p_adc, |
const enum adc12b_trigger_t | trigger | ||
) |
void adc12b_disable_all_channel | ( | Adc12b * | p_adc | ) |
void adc12b_disable_channel | ( | Adc12b * | p_adc, |
const enum adc_channel_num_t | adc_ch | ||
) |
void adc12b_disable_differential_input | ( | Adc12b * | p_adc | ) |
void adc12b_disable_input_offset | ( | Adc12b * | p_adc | ) |
void adc12b_disable_interrupt | ( | Adc12b * | p_adc, |
const uint32_t | ul_source | ||
) |
void adc12b_enable_all_channel | ( | Adc12b * | p_adc | ) |
void adc12b_enable_channel | ( | Adc12b * | p_adc, |
const enum adc_channel_num_t | adc_ch | ||
) |
void adc12b_enable_differential_input | ( | Adc12b * | p_adc | ) |
void adc12b_enable_input_offset | ( | Adc12b * | p_adc | ) |
void adc12b_enable_interrupt | ( | Adc12b * | p_adc, |
const uint32_t | ul_source | ||
) |
uint32_t adc12b_get_actual_adc_clock | ( | const Adc12b * | p_adc, |
const uint32_t | ul_mck | ||
) |
uint32_t adc12b_get_channel_status | ( | const Adc12b * | p_adc, |
const enum adc_channel_num_t | adc_ch | ||
) |
uint32_t adc12b_get_channel_value | ( | const Adc12b * | p_adc, |
const enum adc_channel_num_t | adc_ch | ||
) |
uint32_t adc12b_get_interrupt_mask | ( | const Adc12b * | p_adc | ) |
uint32_t adc12b_get_latest_value | ( | const Adc12b * | p_adc | ) |
Pdc* adc12b_get_pdc_base | ( | const Adc12b * | p_adc | ) |
uint32_t adc12b_get_status | ( | const Adc12b * | p_adc | ) |
uint32_t adc12b_init | ( | Adc12b * | p_adc, |
const uint32_t | ul_mck, | ||
const uint32_t | ul_adc_clock, | ||
const uint32_t | ul_startuptime, | ||
const uint32_t | ul_offmode_startuptime | ||
) |
void adc12b_reset | ( | Adc12b * | p_adc | ) |
void adc12b_set_bias_current | ( | Adc12b * | p_adc, |
const uint8_t | uc_ibctl | ||
) |
void adc12b_set_input_gain | ( | Adc12b * | p_adc, |
const enum adc_gainvalue_t | uc_gain | ||
) |
void adc12b_set_resolution | ( | Adc12b * | p_adc, |
const enum adc_resolution_t | resolution | ||
) |
void adc12b_start | ( | Adc12b * | p_adc | ) |
void adc_check | ( | Adc * | p_adc, |
const uint32_t | ul_mck | ||
) |
void adc_configure_power_save | ( | Adc * | p_adc, |
const uint8_t | uc_sleep, | ||
const uint8_t | uc_fwup | ||
) |
void adc_configure_sequence | ( | Adc * | p_adc, |
const enum adc_channel_num_t | ch_list[], | ||
const uint8_t | uc_num | ||
) |
void adc_configure_timing | ( | Adc * | p_adc, |
const uint8_t | uc_tracking, | ||
const enum adc_settling_time_t | settling, | ||
const uint8_t | uc_transfer | ||
) |
void adc_configure_trigger | ( | Adc * | p_adc, |
const enum adc_trigger_t | trigger, | ||
const uint8_t | uc_freerun | ||
) |
void adc_configure_ts_comparison | ( | Adc * | p_adc, |
enum adc_temp_cmp_mode | mode, | ||
uint16_t | low_threshold, | ||
uint16_t | high_threshold | ||
) |
void adc_disable_anch | ( | Adc * | p_adc | ) |
void adc_disable_channel_differential_input | ( | Adc * | p_adc, |
const enum adc_channel_num_t | channel | ||
) |
void adc_disable_channel_input_offset | ( | Adc * | p_adc, |
const enum adc_channel_num_t | channel | ||
) |
void adc_disable_tag | ( | Adc * | p_adc | ) |
void adc_disable_ts | ( | Adc * | p_adc | ) |
void adc_enable_anch | ( | Adc * | p_adc | ) |
void adc_enable_channel_differential_input | ( | Adc * | p_adc, |
const enum adc_channel_num_t | channel | ||
) |
void adc_enable_channel_input_offset | ( | Adc * | p_adc, |
const enum adc_channel_num_t | channel | ||
) |
void adc_enable_tag | ( | Adc * | p_adc | ) |
void adc_enable_ts | ( | Adc * | p_adc | ) |
uint32_t adc_get_comparison_mode | ( | const Adc * | p_adc | ) |
uint32_t adc_get_overrun_status | ( | const Adc * | p_adc | ) |
uint32_t adc_get_status | ( | const Adc * | p_adc | ) |
enum adc_channel_num_t adc_get_tag | ( | const Adc * | p_adc | ) |
uint32_t adc_get_writeprotect_status | ( | const Adc * | p_adc | ) |
uint32_t adc_init | ( | Adc * | p_adc, |
const uint32_t | ul_mck, | ||
const uint32_t | ul_adc_clock, | ||
const enum adc_startup_time | startup | ||
) |
void adc_set_averaging_trigger | ( | Adc * | p_adc, |
bool | multi | ||
) |
void adc_set_bias_current | ( | Adc * | p_adc, |
const uint8_t | uc_ibctl | ||
) |
void adc_set_calibmode | ( | Adc * | p_adc | ) |
void adc_set_channel_input_gain | ( | Adc * | p_adc, |
const enum adc_channel_num_t | channel, | ||
const enum adc_gainvalue_t | uc_gain | ||
) |
void adc_set_comparison_channel | ( | Adc * | p_adc, |
const enum adc_channel_num_t | channel | ||
) |
void adc_set_comparison_filter | ( | Adc * | p_adc, |
uint8_t | filter | ||
) |
void adc_set_comparison_mode | ( | Adc * | p_adc, |
const uint8_t | uc_mode | ||
) |
void adc_set_comparison_window | ( | Adc * | p_adc, |
const uint16_t | us_low_threshold, | ||
const uint16_t | us_high_threshold | ||
) |
enum status_code adc_set_internal_reference_voltage | ( | Adc * | p_adc, |
struct adc_internal_ref * | ref | ||
) |
void adc_set_writeprotect | ( | Adc * | p_adc, |
const uint32_t | ul_enable | ||
) |
void adc_start_sequencer | ( | Adc * | p_adc | ) |
void adc_stop_sequencer | ( | Adc * | p_adc | ) |