adc_drv.c

Go to the documentation of this file.
00001 /*This file has been prepared for Doxygen automatic documentation generation.*/
00013 
00014 /* Copyright (c) 2007, Atmel Corporation All rights reserved.
00015  *
00016  * Redistribution and use in source and binary forms, with or without
00017  * modification, are permitted provided that the following conditions are met:
00018  *
00019  * 1. Redistributions of source code must retain the above copyright notice,
00020  * this list of conditions and the following disclaimer.
00021  *
00022  * 2. Redistributions in binary form must reproduce the above copyright notice,
00023  * this list of conditions and the following disclaimer in the documentation
00024  * and/or other materials provided with the distribution.
00025  *
00026  * 3. The name of ATMEL may not be used to endorse or promote products derived
00027  * from this software without specific prior written permission.
00028  *
00029  * THIS SOFTWARE IS PROVIDED BY ATMEL ``AS IS'' AND ANY EXPRESS OR IMPLIED
00030  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
00031  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND
00032  * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
00033  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
00034  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00035  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
00036  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00037  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
00038  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00039  */
00040 
00041 //_____  I N C L U D E S ___________________________________________________
00042 
00043 #include "config.h"
00044 
00045 #ifdef USE_ADC 
00046 #include "adc_drv.h"
00047 
00048 //_____ M A C R O S ________________________________________________________
00049 
00050 
00051 //_____ P R I V A T E    D E C L A R A T I O N _____________________________
00052 
00053 
00054 //_____ D E F I N I T I O N ________________________________________________
00055 
00056 
00057 //_____ D E C L A R A T I O N ______________________________________________
00062 void init_adc(void)
00063 {
00064     Enable_adc();
00065 #   if (ADC_RIGHT_ADJUST_RESULT == 1)
00066        Right_adjust_adc_result();
00067 #   elif (ADC_RIGHT_ADJUST_RESULT == 0)
00068        Left_adjust_adc_result();
00069 #   else
00070 #      error (ADC_RIGHT_ADJUST_RESULT should be 0 or 1... See config.h file)
00071 #   endif
00072 
00073 #   if (ADC_HIGH_SPEED_MODE == 1)
00074        Enable_adc_high_speed_mode();
00075 #   elif (ADC_HIGH_SPEED_MODE == 0)
00076        Disable_adc_high_speed_mode();
00077 #   else
00078 #      error (ADC_HIGH_SPEED_MODE should be 0 or 1... See config.h file)
00079 #   endif
00080 
00081 #   if (ADC_INTERNAL_VREF == 2)
00082        Enable_vcc_vref();
00083 #   elif (ADC_INTERNAL_VREF == 1)
00084        Enable_internal_vref();
00085 #   elif (ADC_INTERNAL_VREF == 0)
00086        Enable_vcc_vref();
00087 #   else
00088 #      error (ADC_INTERNAL_VREF should be 0, 1 or 2... See config.h file)
00089 #   endif
00090 
00091 #   if (ADC_IT == 1)
00092        Enable_all_it();
00093        Enable_adc_it();
00094 #   elif (ADC_IT == 0)
00095        Disable_adc_it();
00096 #   else
00097 #      error (ADC_IT should be 0 or 1... See config.h file)
00098 #   endif
00099 
00100 #   if (ADC_PRESCALER == 128)
00101        Set_prescaler(7);
00102 #   elif (ADC_PRESCALER == 64)
00103        Set_prescaler(6);
00104 #   elif (ADC_PRESCALER == 32)
00105        Set_prescaler(5);
00106 #   elif (ADC_PRESCALER == 16)
00107        Set_prescaler(4);
00108 #   elif (ADC_PRESCALER ==  8)
00109        Set_prescaler( 3);
00110 #   elif (ADC_PRESCALER ==  4)
00111        Set_prescaler( 2);
00112 #   elif (ADC_PRESCALER ==  2)
00113        Set_prescaler( 1);
00114 #   else
00115 #      error (ADC_PRESCALER should be 2, 4, 8, 16, 32, 64 or 128... See config.h file)
00116 #   endif
00117 }
00118 
00119 #endif // USE_ADC

Generated on Fri Oct 31 14:47:06 2008 for ATMEL by  doxygen 1.5.3