]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/chips/atm128/adc/Atm128Adc.h
Convert to Unix-style line terminators.
[tinyos-2.x.git] / tos / chips / atm128 / adc / Atm128Adc.h
index 0cff50d131b7ed86cb15d6766a7be21413bfcf30..2bb8e81d2985dea7f95b386ecc9bf48834173d3a 100644 (file)
-// $Id$\r
-\r
-/*\r
- * Copyright (c) 2004-2005 Crossbow Technology, Inc.  All rights reserved.\r
- *\r
- * Permission to use, copy, modify, and distribute this software and its\r
- * documentation for any purpose, without fee, and without written agreement is\r
- * hereby granted, provided that the above copyright notice, the following\r
- * two paragraphs and the author appear in all copies of this software.\r
- * \r
- * IN NO EVENT SHALL CROSSBOW TECHNOLOGY OR ANY OF ITS LICENSORS BE LIABLE TO \r
- * ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL \r
- * DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN\r
- * IF CROSSBOW OR ITS LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH \r
- * DAMAGE. \r
- *\r
- * CROSSBOW TECHNOLOGY AND ITS LICENSORS SPECIFICALLY DISCLAIM ALL WARRANTIES,\r
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY \r
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS \r
- * ON AN "AS IS" BASIS, AND NEITHER CROSSBOW NOR ANY LICENSOR HAS ANY \r
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR \r
- * MODIFICATIONS.\r
- */\r
-\r
-// @author Martin Turon <mturon@xbow.com>\r
-// @author Hu Siquan <husq@xbow.com>\r
-\r
-#ifndef _H_Atm128ADC_h\r
-#define _H_Atm128ADC_h\r
-\r
-//================== 8 channel 10-bit ADC ==============================\r
-\r
-/* Voltage Reference Settings */\r
-enum {\r
-    ATM128_ADC_VREF_OFF = 0, //!< VR+ = AREF   and VR- = GND\r
-    ATM128_ADC_VREF_AVCC = 1,//!< VR+ = AVcc   and VR- = GND\r
-    ATM128_ADC_VREF_RSVD,\r
-    ATM128_ADC_VREF_2_56 = 3,//!< VR+ = 2.56V  and VR- = GND\r
-};\r
-\r
-/* Voltage Reference Settings */\r
-enum {\r
-    ATM128_ADC_RIGHT_ADJUST = 0, \r
-    ATM128_ADC_LEFT_ADJUST = 1,\r
-};\r
-\r
-\r
-/* ADC Multiplexer Settings */\r
-enum {\r
-    ATM128_ADC_SNGL_ADC0 = 0,\r
-    ATM128_ADC_SNGL_ADC1,\r
-    ATM128_ADC_SNGL_ADC2,\r
-    ATM128_ADC_SNGL_ADC3,\r
-    ATM128_ADC_SNGL_ADC4,\r
-    ATM128_ADC_SNGL_ADC5,\r
-    ATM128_ADC_SNGL_ADC6,\r
-    ATM128_ADC_SNGL_ADC7,\r
-    ATM128_ADC_DIFF_ADC00_10x,\r
-    ATM128_ADC_DIFF_ADC10_10x,\r
-    ATM128_ADC_DIFF_ADC00_200x,\r
-    ATM128_ADC_DIFF_ADC10_200x,\r
-    ATM128_ADC_DIFF_ADC22_10x,\r
-    ATM128_ADC_DIFF_ADC32_10x,\r
-    ATM128_ADC_DIFF_ADC22_200x,\r
-    ATM128_ADC_DIFF_ADC32_200x,\r
-    ATM128_ADC_DIFF_ADC01_1x,\r
-    ATM128_ADC_DIFF_ADC11_1x,\r
-    ATM128_ADC_DIFF_ADC21_1x,\r
-    ATM128_ADC_DIFF_ADC31_1x,\r
-    ATM128_ADC_DIFF_ADC41_1x,\r
-    ATM128_ADC_DIFF_ADC51_1x,\r
-    ATM128_ADC_DIFF_ADC61_1x,\r
-    ATM128_ADC_DIFF_ADC71_1x,\r
-    ATM128_ADC_DIFF_ADC02_1x,\r
-    ATM128_ADC_DIFF_ADC12_1x,\r
-    ATM128_ADC_DIFF_ADC22_1x,\r
-    ATM128_ADC_DIFF_ADC32_1x,\r
-    ATM128_ADC_DIFF_ADC42_1x,\r
-    ATM128_ADC_DIFF_ADC52_1x,\r
-    ATM128_ADC_SNGL_1_23,\r
-    ATM128_ADC_SNGL_GND,\r
-};\r
-\r
-/* ADC Multiplexer Selection Register */\r
-typedef struct\r
-{\r
-    uint8_t mux   : 5;  //!< Analog Channel and Gain Selection Bits\r
-    uint8_t adlar : 1;  //!< ADC Left Adjust Result\r
-    uint8_t refs  : 2;  //!< Reference Selection Bits\r
-} Atm128Admux_t;\r
-\r
-/* ADC Prescaler Settings */\r
-/* Note: each platform must define ATM128_ADC_PRESCALE to the smallest\r
-   prescaler which guarantees full A/D precision. */\r
-enum {\r
-    ATM128_ADC_PRESCALE_2 = 0,\r
-    ATM128_ADC_PRESCALE_2b,\r
-    ATM128_ADC_PRESCALE_4,\r
-    ATM128_ADC_PRESCALE_8,\r
-    ATM128_ADC_PRESCALE_16,\r
-    ATM128_ADC_PRESCALE_32,\r
-    ATM128_ADC_PRESCALE_64,\r
-    ATM128_ADC_PRESCALE_128,\r
-\r
-    // This special value is used to ask the platform for the prescaler\r
-    // which gives full precision.\r
-    ATM128_ADC_PRESCALE\r
-};\r
-\r
-/* ADC Enable Settings */\r
-enum {\r
-    ATM128_ADC_ENABLE_OFF = 0,\r
-    ATM128_ADC_ENABLE_ON,\r
-};\r
-\r
-/* ADC Start Conversion Settings */\r
-enum {\r
-    ATM128_ADC_START_CONVERSION_OFF = 0,\r
-    ATM128_ADC_START_CONVERSION_ON,\r
-};\r
-\r
-/* ADC Free Running Select Settings */\r
-enum {\r
-    ATM128_ADC_FREE_RUNNING_OFF = 0,\r
-    ATM128_ADC_FREE_RUNNING_ON,\r
-};\r
-\r
-/* ADC Interrupt Flag Settings */\r
-enum {\r
-    ATM128_ADC_INT_FLAG_OFF = 0,\r
-    ATM128_ADC_INT_FLAG_ON,\r
-};\r
-\r
-/* ADC Interrupt Enable Settings */\r
-enum {\r
-    ATM128_ADC_INT_ENABLE_OFF = 0,\r
-    ATM128_ADC_INT_ENABLE_ON,\r
-};\r
-\r
-/* ADC Multiplexer Selection Register */\r
-typedef struct\r
-{\r
-    uint8_t adps  : 3;  //!< ADC Prescaler Select Bits\r
-    uint8_t adie  : 1;  //!< ADC Interrupt Enable\r
-    uint8_t adif  : 1;  //!< ADC Interrupt Flag\r
-    uint8_t adfr  : 1;  //!< ADC Free Running Select\r
-    uint8_t adsc  : 1;  //!< ADC Start Conversion\r
-    uint8_t aden  : 1;  //!< ADC Enable\r
-} Atm128Adcsra_t;\r
-\r
-typedef uint8_t Atm128_ADCH_t;         //!< ADC data register high\r
-typedef uint8_t Atm128_ADCL_t;         //!< ADC data register low\r
-\r
-// The resource identifier string for the ADC subsystem\r
-#define UQ_ATM128ADC_RESOURCE "atm128adc.resource"\r
-\r
-#endif //_H_Atm128ADC_h\r
-\r
+// $Id$
+
+/*
+ * Copyright (c) 2004-2005 Crossbow Technology, Inc.  All rights reserved.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose, without fee, and without written agreement is
+ * hereby granted, provided that the above copyright notice, the following
+ * two paragraphs and the author appear in all copies of this software.
+ * 
+ * IN NO EVENT SHALL CROSSBOW TECHNOLOGY OR ANY OF ITS LICENSORS BE LIABLE TO 
+ * ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL 
+ * DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+ * IF CROSSBOW OR ITS LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 
+ * DAMAGE. 
+ *
+ * CROSSBOW TECHNOLOGY AND ITS LICENSORS SPECIFICALLY DISCLAIM ALL WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 
+ * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS 
+ * ON AN "AS IS" BASIS, AND NEITHER CROSSBOW NOR ANY LICENSOR HAS ANY 
+ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR 
+ * MODIFICATIONS.
+ */
+
+// @author Martin Turon <mturon@xbow.com>
+// @author Hu Siquan <husq@xbow.com>
+
+#ifndef _H_Atm128ADC_h
+#define _H_Atm128ADC_h
+
+//================== 8 channel 10-bit ADC ==============================
+
+/* Voltage Reference Settings */
+enum {
+    ATM128_ADC_VREF_OFF = 0, //!< VR+ = AREF   and VR- = GND
+    ATM128_ADC_VREF_AVCC = 1,//!< VR+ = AVcc   and VR- = GND
+    ATM128_ADC_VREF_RSVD,
+    ATM128_ADC_VREF_2_56 = 3,//!< VR+ = 2.56V  and VR- = GND
+};
+
+/* Voltage Reference Settings */
+enum {
+    ATM128_ADC_RIGHT_ADJUST = 0, 
+    ATM128_ADC_LEFT_ADJUST = 1,
+};
+
+
+/* ADC Multiplexer Settings */
+enum {
+    ATM128_ADC_SNGL_ADC0 = 0,
+    ATM128_ADC_SNGL_ADC1,
+    ATM128_ADC_SNGL_ADC2,
+    ATM128_ADC_SNGL_ADC3,
+    ATM128_ADC_SNGL_ADC4,
+    ATM128_ADC_SNGL_ADC5,
+    ATM128_ADC_SNGL_ADC6,
+    ATM128_ADC_SNGL_ADC7,
+    ATM128_ADC_DIFF_ADC00_10x,
+    ATM128_ADC_DIFF_ADC10_10x,
+    ATM128_ADC_DIFF_ADC00_200x,
+    ATM128_ADC_DIFF_ADC10_200x,
+    ATM128_ADC_DIFF_ADC22_10x,
+    ATM128_ADC_DIFF_ADC32_10x,
+    ATM128_ADC_DIFF_ADC22_200x,
+    ATM128_ADC_DIFF_ADC32_200x,
+    ATM128_ADC_DIFF_ADC01_1x,
+    ATM128_ADC_DIFF_ADC11_1x,
+    ATM128_ADC_DIFF_ADC21_1x,
+    ATM128_ADC_DIFF_ADC31_1x,
+    ATM128_ADC_DIFF_ADC41_1x,
+    ATM128_ADC_DIFF_ADC51_1x,
+    ATM128_ADC_DIFF_ADC61_1x,
+    ATM128_ADC_DIFF_ADC71_1x,
+    ATM128_ADC_DIFF_ADC02_1x,
+    ATM128_ADC_DIFF_ADC12_1x,
+    ATM128_ADC_DIFF_ADC22_1x,
+    ATM128_ADC_DIFF_ADC32_1x,
+    ATM128_ADC_DIFF_ADC42_1x,
+    ATM128_ADC_DIFF_ADC52_1x,
+    ATM128_ADC_SNGL_1_23,
+    ATM128_ADC_SNGL_GND,
+};
+
+/* ADC Multiplexer Selection Register */
+typedef struct
+{
+    uint8_t mux   : 5;  //!< Analog Channel and Gain Selection Bits
+    uint8_t adlar : 1;  //!< ADC Left Adjust Result
+    uint8_t refs  : 2;  //!< Reference Selection Bits
+} Atm128Admux_t;
+
+/* ADC Prescaler Settings */
+/* Note: each platform must define ATM128_ADC_PRESCALE to the smallest
+   prescaler which guarantees full A/D precision. */
+enum {
+    ATM128_ADC_PRESCALE_2 = 0,
+    ATM128_ADC_PRESCALE_2b,
+    ATM128_ADC_PRESCALE_4,
+    ATM128_ADC_PRESCALE_8,
+    ATM128_ADC_PRESCALE_16,
+    ATM128_ADC_PRESCALE_32,
+    ATM128_ADC_PRESCALE_64,
+    ATM128_ADC_PRESCALE_128,
+
+    // This special value is used to ask the platform for the prescaler
+    // which gives full precision.
+    ATM128_ADC_PRESCALE
+};
+
+/* ADC Enable Settings */
+enum {
+    ATM128_ADC_ENABLE_OFF = 0,
+    ATM128_ADC_ENABLE_ON,
+};
+
+/* ADC Start Conversion Settings */
+enum {
+    ATM128_ADC_START_CONVERSION_OFF = 0,
+    ATM128_ADC_START_CONVERSION_ON,
+};
+
+/* ADC Free Running Select Settings */
+enum {
+    ATM128_ADC_FREE_RUNNING_OFF = 0,
+    ATM128_ADC_FREE_RUNNING_ON,
+};
+
+/* ADC Interrupt Flag Settings */
+enum {
+    ATM128_ADC_INT_FLAG_OFF = 0,
+    ATM128_ADC_INT_FLAG_ON,
+};
+
+/* ADC Interrupt Enable Settings */
+enum {
+    ATM128_ADC_INT_ENABLE_OFF = 0,
+    ATM128_ADC_INT_ENABLE_ON,
+};
+
+/* ADC Multiplexer Selection Register */
+typedef struct
+{
+    uint8_t adps  : 3;  //!< ADC Prescaler Select Bits
+    uint8_t adie  : 1;  //!< ADC Interrupt Enable
+    uint8_t adif  : 1;  //!< ADC Interrupt Flag
+    uint8_t adfr  : 1;  //!< ADC Free Running Select
+    uint8_t adsc  : 1;  //!< ADC Start Conversion
+    uint8_t aden  : 1;  //!< ADC Enable
+} Atm128Adcsra_t;
+
+typedef uint8_t Atm128_ADCH_t;         //!< ADC data register high
+typedef uint8_t Atm128_ADCL_t;         //!< ADC data register low
+
+// The resource identifier string for the ADC subsystem
+#define UQ_ATM128ADC_RESOURCE "atm128adc.resource"
+
+#endif //_H_Atm128ADC_h
+