]> oss.titaniummirror.com Git - tinyos-2.x.git/commitdiff
accelerometer cleanup
authorr-studio <r-studio>
Tue, 22 Sep 2009 11:18:49 +0000 (11:18 +0000)
committerr-studio <r-studio>
Tue, 22 Sep 2009 11:18:49 +0000 (11:18 +0000)
tos/chips/m16c62p/adc/M16c62pAdcPlatform.nc [new file with mode: 0644]
tos/chips/mma7261qt/HplMMA7261QT.h [new file with mode: 0644]
tos/chips/mma7261qt/HplMMA7261QTControl.nc
tos/chips/mma7261qt/HplMMA7261QTControlC.nc
tos/chips/mma7261qt/HplMMA7261QTControlP.nc
tos/chips/mma7261qt/HplMMA7261QTReaderC.nc
tos/platforms/mulle/.platform
tos/platforms/mulle/chips/mma7261qt/HplMMA7261QTC.nc [new file with mode: 0644]
tos/platforms/mulle/chips/mma7261qt/HplMMA7261QTP.nc [new file with mode: 0644]

diff --git a/tos/chips/m16c62p/adc/M16c62pAdcPlatform.nc b/tos/chips/m16c62p/adc/M16c62pAdcPlatform.nc
new file mode 100644 (file)
index 0000000..7a50f1b
--- /dev/null
@@ -0,0 +1,6 @@
+interface M16c62pAdcPlatform
+{
+  async command void adcOn();
+  
+  async command void adcOff();
+}
\ No newline at end of file
diff --git a/tos/chips/mma7261qt/HplMMA7261QT.h b/tos/chips/mma7261qt/HplMMA7261QT.h
new file mode 100644 (file)
index 0000000..06f8e0d
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2009 Communication Group and Eislab at
+ * Lulea University of Technology
+ *
+ * Contact: Laurynas Riliskis, LTU
+ * Mail: laurynas.riliskis@ltu.se
+ * 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 following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the
+ *   distribution.
+ * - Neither the name of Communication Group at Lulea University of Technology
+ *   nor the names of its contributors may be used to endorse or promote
+ *    products derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL STANFORD
+ * UNIVERSITY OR ITS CONTRIBUTORS 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.
+ */
+
+/**
+ * MMA7261QT gSelect defines.
+ *
+ * @author Henrik Makitaavola
+ */
+
+#ifndef __HPLMMA7261QT_H__
+#define  __HPLMMA7261QT_H__
+
+typedef enum mm7261qt_gselect {
+  MMA7261QT_GSELECT_2_5G=0, //most sensitive
+  MMA7261QT_GSELECT_3_3G=1,
+  MMA7261QT_GSELECT_6_7G=2,
+  MMA7261QT_GSELECT_10_0G=3, //least sensitive
+} mm7261qt_gselect_t;
+
+#endif
+
index 7f9313fc3858ad13d540b681ac2f073672984da2..7f3e149a5581a3266b86916fb6271fd94836a742 100644 (file)
@@ -1,6 +1,49 @@
+/*
+ * Copyright (c) 2009 Communication Group and Eislab at
+ * Lulea University of Technology
+ *
+ * Contact: Laurynas Riliskis, LTU
+ * Mail: laurynas.riliskis@ltu.se
+ * 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 following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the
+ *   distribution.
+ * - Neither the name of Communication Group at Lulea University of Technology
+ *   nor the names of its contributors may be used to endorse or promote
+ *    products derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL STANFORD
+ * UNIVERSITY OR ITS CONTRIBUTORS 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.
+ */
+
+/**
+ * MMA7261QT control interface.
+ *
+ * @author Henrik Makitaavola
+ */
+#include "HplMMA7261QT.h"
+
 interface HplMMA7261QTControl
 {
   async command void on();
   async command void off();
-  async command void gSelect(uint8_t val);
-}
\ No newline at end of file
+  async command void gSelect( mm7261qt_gselect_t val);
+}
index 6505cde162778c9aa619927fa5445c2610816507..aee31a055b59314b3b7479e8ae6f07f335eb2a25 100644 (file)
@@ -1,3 +1,45 @@
+/*
+ * Copyright (c) 2009 Communication Group and Eislab at
+ * Lulea University of Technology
+ *
+ * Contact: Laurynas Riliskis, LTU
+ * Mail: laurynas.riliskis@ltu.se
+ * 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 following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the
+ *   distribution.
+ * - Neither the name of Communication Group at Lulea University of Technology
+ *   nor the names of its contributors may be used to endorse or promote
+ *    products derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL STANFORD
+ * UNIVERSITY OR ITS CONTRIBUTORS 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.
+ */
+
+/**
+ * MMA7261QT control component.
+ *
+ * @author Henrik Makitaavola
+ */
+
 configuration HplMMA7261QTControlC
 {
   provides interface HplMMA7261QTControl;
@@ -11,4 +53,4 @@ implementation
   HplMMA7261QTControlP.GSelect2 -> HplMMA7261QTC.GSelect2;
   
   HplMMA7261QTControl = HplMMA7261QTControlP;
-}
\ No newline at end of file
+}
index e70cb19b42601bc9d26e86ae10f689d73f0e1a2a..79b4d41a812e8dd008ab33d352abf5c7013ad7fa 100644 (file)
@@ -1,3 +1,46 @@
+/*
+ * Copyright (c) 2009 Communication Group and Eislab at
+ * Lulea University of Technology
+ *
+ * Contact: Laurynas Riliskis, LTU
+ * Mail: laurynas.riliskis@ltu.se
+ * 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 following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the
+ *   distribution.
+ * - Neither the name of Communication Group at Lulea University of Technology
+ *   nor the names of its contributors may be used to endorse or promote
+ *    products derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL STANFORD
+ * UNIVERSITY OR ITS CONTRIBUTORS 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.
+ */
+
+/**
+ * MMA7261QT control.
+ *
+ * @author Henrik Makitaavola
+ */
+#include "HplMMA7261QT.h"
+
 module HplMMA7261QTControlP
 {
   provides interface HplMMA7261QTControl;
@@ -11,6 +54,9 @@ implementation
   async command void HplMMA7261QTControl.on()
   {
     call Sleep.set();
+    call GSelect1.clr();
+    call GSelect2.clr();
+
   }
   
   async command void HplMMA7261QTControl.off()
@@ -20,8 +66,16 @@ implementation
     call Sleep.clr();
   }
   
-  async command void HplMMA7261QTControl.gSelect(uint8_t val)
+  async command void HplMMA7261QTControl.gSelect( mm7261qt_gselect_t val)
   {
-    // TODO(henrik) implement.
+    if(val & 1)
+      call GSelect1.set();
+    else 
+      call GSelect1.clr();
+
+    if(val & 2)
+      call GSelect2.set();
+    else
+      call GSelect2.clr();
   }
-}
\ No newline at end of file
+}
index 78bbf6807d7d177705ef2c737326eb1c61f4f004..a9bdb26af1bebed0d9cac6d55967e0cddec53760 100644 (file)
@@ -1,3 +1,45 @@
+/*
+ * Copyright (c) 2009 Communication Group and Eislab at
+ * Lulea University of Technology
+ *
+ * Contact: Laurynas Riliskis, LTU
+ * Mail: laurynas.riliskis@ltu.se
+ * 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 following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the
+ *   distribution.
+ * - Neither the name of Communication Group at Lulea University of Technology
+ *   nor the names of its contributors may be used to endorse or promote
+ *    products derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL STANFORD
+ * UNIVERSITY OR ITS CONTRIBUTORS 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.
+ */
+
+/**
+ * MMA7261QT reader.
+ *
+ * @author Henrik Makitaavola
+ */
+
 configuration HplMMA7261QTReaderC
 {
   provides interface Read<uint16_t> as AccelX;
@@ -11,4 +53,4 @@ implementation
   AccelX = HplMMA7261QTC.AccelX;
   AccelY = HplMMA7261QTC.AccelY;
   AccelZ = HplMMA7261QTC.AccelZ;
-}
\ No newline at end of file
+}
index 2cd002927c04683a54e0e9793d88ba70c5f9b27c..932d67faec18500b953d667dfe6b38d1fe902ff2 100755 (executable)
@@ -10,6 +10,7 @@ push( @includes, qw(
   %T/platforms/mulle/chips/rv8564
   %T/platforms/mulle/chips/at45db
   %T/platforms/mulle/chips/m16c62p
+  %T/platforms/mulle/chips/mma7261qt
   %T/platforms/mulle/debug
   %T/platforms/mulle/system
   %T/platforms/mulle/timers
@@ -22,6 +23,7 @@ push( @includes, qw(
   %T/chips/m16c62p/pins
   %T/chips/m16c62p/timer
   %T/chips/m16c62p/uart
+  %T/chips/mma7261qt
   %T/chips/ds2745
   %T/lib/power
   %T/lib/timer
diff --git a/tos/platforms/mulle/chips/mma7261qt/HplMMA7261QTC.nc b/tos/platforms/mulle/chips/mma7261qt/HplMMA7261QTC.nc
new file mode 100644 (file)
index 0000000..61c3ea4
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2009 Communication Group and Eislab at
+ * Lulea University of Technology
+ *
+ * Contact: Laurynas Riliskis, LTU
+ * Mail: laurynas.riliskis@ltu.se
+ * 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 following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the
+ *   distribution.
+ * - Neither the name of Communication Group at Lulea University of Technology
+ *   nor the names of its contributors may be used to endorse or promote
+ *    products derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL STANFORD
+ * UNIVERSITY OR ITS CONTRIBUTORS 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.
+ */
+
+/**
+ * MMA7261QT configuration.
+ *
+ * @author Henrik Makitaavola
+ */
+
+configuration HplMMA7261QTC
+{
+  provides interface Read<uint16_t> as AccelX;
+  provides interface Read<uint16_t> as AccelY;
+  provides interface Read<uint16_t> as AccelZ;
+  
+  provides interface GeneralIO as Sleep;
+  provides interface GeneralIO as GSelect1;
+  provides interface GeneralIO as GSelect2;
+}
+implementation
+{
+  components new AdcReadClientC() as _AccelX, 
+             new AdcReadClientC() as _AccelY,
+             new AdcReadClientC() as _AccelZ,
+             HplM16c62pGeneralIOC as IOs,
+             HplMMA7261QTP;
+             
+  HplMMA7261QTP.VCC -> IOs.PortP76;
+  HplMMA7261QTP.Sleep -> IOs.PortP12;
+  HplMMA7261QTP.GSelect1 -> IOs.PortP30;
+  HplMMA7261QTP.GSelect2 -> IOs.PortP31;
+  HplMMA7261QTP.AccelXPort -> IOs.PortP105;
+  HplMMA7261QTP.AccelYPort -> IOs.PortP104;
+  HplMMA7261QTP.AccelZPort -> IOs.PortP103;
+  
+  Sleep = IOs.PortP12;
+  GSelect1 = IOs.PortP30;
+  GSelect2 = IOs.PortP31;
+  
+  _AccelX.M16c62pAdcConfig -> HplMMA7261QTP.AccelXConf;
+  _AccelY.M16c62pAdcConfig -> HplMMA7261QTP.AccelYConf;
+  _AccelZ.M16c62pAdcConfig -> HplMMA7261QTP.AccelZConf;
+  
+  AccelX = _AccelX;
+  AccelY = _AccelY;
+  AccelZ = _AccelZ;
+  
+  components RealMainP;
+  RealMainP.PlatformInit -> HplMMA7261QTP.Init;
+  
+}
diff --git a/tos/platforms/mulle/chips/mma7261qt/HplMMA7261QTP.nc b/tos/platforms/mulle/chips/mma7261qt/HplMMA7261QTP.nc
new file mode 100644 (file)
index 0000000..45eb012
--- /dev/null
@@ -0,0 +1,131 @@
+/*
+ * Copyright (c) 2009 Communication Group and Eislab at
+ * Lulea University of Technology
+ *
+ * Contact: Laurynas Riliskis, LTU
+ * Mail: laurynas.riliskis@ltu.se
+ * 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 following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the
+ *   distribution.
+ * - Neither the name of Communication Group at Lulea University of Technology
+ *   nor the names of its contributors may be used to endorse or promote
+ *    products derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL STANFORD
+ * UNIVERSITY OR ITS CONTRIBUTORS 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.
+ */
+
+/**
+ * MMA7261QT implementation.
+ *
+ * @author Henrik Makitaavola
+ */
+
+module HplMMA7261QTP
+{
+  provides
+  {
+    interface Init;
+    interface M16c62pAdcConfig as AccelXConf;
+    interface M16c62pAdcConfig as AccelYConf;
+    interface M16c62pAdcConfig as AccelZConf;
+  }
+  
+  uses
+  {
+    interface GeneralIO as VCC;
+    interface GeneralIO as Sleep;
+    interface GeneralIO as GSelect1;
+    interface GeneralIO as GSelect2;
+    interface GeneralIO as AccelXPort;
+    interface GeneralIO as AccelYPort;
+    interface GeneralIO as AccelZPort;
+  }
+}
+implementation
+{
+  command error_t Init.init()
+  {
+    call VCC.makeOutput();
+    call VCC.set();
+    call Sleep.makeOutput();
+    call Sleep.clr();
+    call GSelect1.makeOutput();
+    call GSelect1.clr();
+    call GSelect2.makeOutput();
+    call GSelect2.clr();
+    call AccelXPort.makeInput();
+    call AccelXPort.clr();
+    call AccelYPort.makeInput();
+    call AccelYPort.clr();
+    call AccelZPort.makeInput();
+    call AccelZPort.clr();
+  }
+  
+  inline uint8_t prescaler() { return M16c62p_ADC_PRESCALE_4; }
+  inline uint8_t precision() { return M16c62p_ADC_PRECISION_8BIT; }
+  
+  async command uint8_t AccelXConf.getChannel()
+  {
+    return M16c62p_ADC_CHL_AN5;
+  }
+
+  async command uint8_t AccelXConf.getPrecision()
+  {
+    return precision();
+  }
+
+  async command uint8_t AccelXConf.getPrescaler()
+  {
+    return prescaler();
+  }
+  
+    async command uint8_t AccelYConf.getChannel()
+  {
+    return M16c62p_ADC_CHL_AN4;
+  }
+
+  async command uint8_t AccelYConf.getPrecision()
+  {
+    return precision();
+  }
+
+  async command uint8_t AccelYConf.getPrescaler()
+  {
+    return prescaler();
+  }
+  
+  async command uint8_t AccelZConf.getChannel()
+  {
+    return M16c62p_ADC_CHL_AN3;
+  }
+
+  async command uint8_t AccelZConf.getPrecision()
+  {
+    return precision();
+  }
+
+  async command uint8_t AccelZConf.getPrescaler()
+  {
+    return prescaler();
+  }
+}