1 /***************************************************************************** 2 * 3 * \file 4 * 5 * \brief ADC header for AVR UC3 UC3. 6 * 7 * This file defines a useful set of functions for ADC on AVR UC3 devices. 8 * 9 * Copyright (c) 2009-2018 Microchip Technology Inc. and its subsidiaries. 10 * 11 * \asf_license_start 12 * 13 * \page License 14 * 15 * Subject to your compliance with these terms, you may use Microchip 16 * software and any derivatives exclusively with Microchip products. 17 * It is your responsibility to comply with third party license terms applicable 18 * to your use of third party software (including open source software) that 19 * may accompany Microchip software. 20 * 21 * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, 22 * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, 23 * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, 24 * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE 25 * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL 26 * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE 27 * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE 28 * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT 29 * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY 30 * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, 31 * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. 32 * 33 * \asf_license_stop 34 * 35 *****************************************************************************/ 36 /* 37 * Support and FAQ: visit <a href="https://www.microchip.com/support/">Microchip Support</a> 38 */ 39 40 #ifndef _ADC_H_ 41 #define _ADC_H_ 42 43 /** 44 * \defgroup group_avr32_drivers_adc ADC - Analog to Digital Converter 45 * 46 * Analog to Digital Converter is able to capture analog signals and transform 47 * them 48 * into digital format with 10-bit resolution. 49 * 50 * \{ 51 */ 52 53 #include <avr32/io.h> 54 #include "compiler.h" 55 56 /* if using 8 bits for ADC, define this flag in your compiler options */ 57 /** Max value for ADC resolution */ 58 #ifdef USE_ADC_8_BITS 59 # define ADC_MAX_VALUE 0xFF 60 #else 61 # define ADC_MAX_VALUE 0x3FF 62 #endif 63 64 void adc_configure(volatile avr32_adc_t *adc); 65 66 void adc_start(volatile avr32_adc_t *adc); 67 68 void adc_enable(volatile avr32_adc_t *adc, uint16_t channel); 69 70 void adc_disable(volatile avr32_adc_t *adc, uint16_t channel); 71 72 bool adc_get_status(volatile avr32_adc_t *adc, uint16_t channel); 73 74 bool adc_check_eoc(volatile avr32_adc_t *adc, uint16_t channel); 75 76 bool adc_check_ovr(volatile avr32_adc_t *adc, uint16_t channel); 77 78 uint32_t adc_get_value(volatile avr32_adc_t *adc, 79 uint16_t channel); 80 81 uint32_t adc_get_latest_value(volatile avr32_adc_t *adc); 82 83 /** 84 * \} 85 */ 86 87 #endif /* _ADC_H_ */ 88