adc.h

Go to the documentation of this file.
00001 /**************************************************************************/
00018 #ifndef _ADC_H
00019 #define _ADC_H
00020 
00021 // \cond
00022 /******************************************************************************
00023                    Includes section
00024 ******************************************************************************/
00025 #include <types.h>
00026 // \endcond
00027 
00029 #define RESOLUTION_8_BIT  0
00030 #define RESOLUTION_10_BIT 1
00031 
00032 /******************************************************************************
00033                    Types section
00034 ******************************************************************************/
00035 /**************************************************************************/
00038 #if defined(AT91SAM7X256)
00039   typedef enum
00040   {
00041     ADC_533KSPS,
00042     ADC_429KSPS,
00043     ADC_369KSPS,
00044     ADC_250KSPS,
00045     ADC_136KSPS,
00046     ADC_68KSPS,
00047     ADC_34KSPS
00048   } HAL_AdcSampleRate_t;
00049 #elif defined(ATMEGA1281) || defined(ATMEGA2561) || defined(ATMEGA1284) || defined(AT90USB1287)
00050   typedef enum
00051   {
00052     ADC_77KSPS,
00053     ADC_39KSPS,
00054     ADC_19200SPS,
00055     ADC_9600SPS,
00056     ADC_4800SPS
00057   } HAL_AdcSampleRate_t;
00058 #endif
00059 
00060 /**************************************************************************/
00063 typedef enum
00064 {
00068   AREF = (0 << 6),
00070   AVCC = (1 << 6),
00072   INTERNAL_1d1V = (2 << 6),
00074   INTERNAL_2d56V = (3 << 6)
00075 } HAL_AdcVoltageReference_t;
00076 
00077 /**************************************************************************/
00080 typedef struct
00081 {
00083   uint8_t resolution;
00085   HAL_AdcSampleRate_t sampleRate;
00087   HAL_AdcVoltageReference_t voltageReference;
00089   void *bufferPointer;
00091   uint16_t selectionsAmount;
00093   void (*callback)();
00094 } HAL_AdcParams_t;
00095 
00096 /**************************************************************************/
00107 #if defined(AT91SAM7X256)
00108   typedef enum
00109   {
00110     HAL_ADC_CHANNEL0 = (1 <<  0),
00111     HAL_ADC_CHANNEL1 = (1 <<  1),
00112     HAL_ADC_CHANNEL2 = (1 <<  2),
00113     HAL_ADC_CHANNEL3 = (1 <<  3),
00114     HAL_ADC_CHANNEL4 = (1 <<  4),
00115     HAL_ADC_CHANNEL5 = (1 <<  5),
00116     HAL_ADC_CHANNEL6 = (1 <<  6),
00117     HAL_ADC_CHANNEL7 = (1 <<  7)
00118   } HAL_AdcChannelNumber_t;
00119 #elif defined(ATMEGA1281) || defined(ATMEGA2561) || defined(ATMEGA1284) || defined(AT90USB1287)
00120   typedef enum
00121   {
00123     HAL_ADC_CHANNEL0 = 0,
00125     HAL_ADC_CHANNEL1 = 1,
00127     HAL_ADC_CHANNEL2 = 2,
00129     HAL_ADC_CHANNEL3 = 3,
00131     HAL_ADC_DIFF_CHANNEL0 = 8,
00133     HAL_ADC_DIFF_CHANNEL1 = 9,
00135     HAL_ADC_DIFF_CHANNEL2 = 10,
00137     HAL_ADC_DIFF_CHANNEL3 = 11,
00139     HAL_ADC_DIFF_CHANNEL4 = 12,
00141     HAL_ADC_DIFF_CHANNEL5 = 13,
00143     HAL_ADC_DIFF_CHANNEL6 = 14,
00145     HAL_ADC_DIFF_CHANNEL7 = 15
00146   } HAL_AdcChannelNumber_t;
00147 #endif
00148 
00149 /******************************************************************************
00150                    Prototypes section
00151 ******************************************************************************/
00152 /**************************************************************************/
00184 int HAL_OpenAdc(HAL_AdcParams_t *param);
00185 
00186 /**************************************************************************/
00213 int HAL_ReadAdc(HAL_AdcChannelNumber_t channel);
00214 
00215 /**************************************************************************/
00222 int HAL_CloseAdc(void);
00223 
00224 #endif /* _ADC_H */
00225 // eof adc.h

Generated on Mon Feb 16 17:53:40 2009 for BitCloud Stack Documentation by  doxygen 1.5.1-p1