/*! \file ********************************************************************* * * \brief API for SAM3 Analog-to-Digital Converter (ADC/ADC12B) controller. * * ---------------------------------------------------------------------------- * SAM Software Package License * ---------------------------------------------------------------------------- * Copyright (c) 2011, Atmel Corporation * * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * - Redistributions of source code must retain the above copyright notice, * this list of conditions and the disclaimer below. * * Atmel's name may not be used to endorse or promote products derived from * this software without specific prior written permission. * * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * - Compiler: IAR EWARM and CodeSourcery GCC for ARM * - Supported devices: All SAM devices with a Analog-to-Digital Converter can be used. * - AppNote: * * \author Atmel Corporation: http://www.atmel.com \n * Support and FAQ: http://support.atmel.com/ * *******************************************************************************/ #ifndef ADC_H_INCLUDED #define ADC_H_INCLUDED #include "../chip.h" #if SAM3U #define ADC_12B #endif #define ADC_FREQ_MAX 20000000 #define ADC_FREQ_MIN 1000000 #define ADC_STARTUP_NORM 40 #define ADC_STARTUP_FAST 12 /* Definitions for ADC resolution */ #if SAM3S || SAM3XA typedef enum _adc_resolution_t { ADC_10_BITS = ADC_MR_LOWRES_BITS_10, /* ADC 10-bit resolution */ ADC_12_BITS = ADC_MR_LOWRES_BITS_12 /* ADC 12-bit resolution */ } adc_resolution_t; #elif SAM3N typedef enum _adc_resolution_t { ADC_8_BITS = ADC_MR_LOWRES_BITS_8, /* ADC 8-bit resolution */ ADC_10_BITS = ADC_MR_LOWRES_BITS_10 /* ADC 10-bit resolution */ } adc_resolution_t; #elif SAM3U #ifdef ADC_12B typedef enum _adc_resolution_t { ADC_10_BITS = ADC12B_MR_LOWRES_BITS_10, /* ADC 10-bit resolution */ ADC_12_BITS = ADC12B_MR_LOWRES_BITS_12 /* ADC 12-bit resolution */ } adc_resolution_t; #else typedef enum _adc_resolution_t { ADC_8_BITS = ADC_MR_LOWRES_BITS_8, /* ADC 8-bit resolution */ ADC_10_BITS = ADC_MR_LOWRES_BITS_10 /* ADC 10-bit resolution */ } adc_resolution_t; #endif #endif /* Definitions for ADC trigger */ typedef enum _adc_trigger_t { ADC_TRIG_SW = ADC_MR_TRGEN_DIS, /* Starting a conversion is only possible by software. */ ADC_TRIG_EXT = ((ADC_MR_TRGSEL_ADC_TRIG0 <