From: ayer1 Date: Thu, 18 Feb 2010 18:46:38 +0000 (+0000) Subject: added support for tilt switch with (basically aliased) UserButton-style code. X-Git-Tag: rc_6_tinyos_2_1_1~9 X-Git-Url: https://oss.titaniummirror.com/gitweb/?p=tinyos-2.x.git;a=commitdiff_plain;h=c60ea1b3b2c7494c400dae8a98084ea0e959ce9d added support for tilt switch with (basically aliased) UserButton-style code. --- diff --git a/tos/platforms/shimmer2/chips/tilt/HplTiltDetectorC.nc b/tos/platforms/shimmer2/chips/tilt/HplTiltDetectorC.nc new file mode 100644 index 00000000..b8946003 --- /dev/null +++ b/tos/platforms/shimmer2/chips/tilt/HplTiltDetectorC.nc @@ -0,0 +1,57 @@ +/** + * Copyright (c) 2007 Arch Rock Corporation + * 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 the Arch Rock Corporation 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 THE + * ARCHED ROCK 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 + */ + +/** + * Implementation of the user button for the telos platform + * + * @author Gilman Tolle + * @version $Revision$ + * (not much to) port to shimmer + * @author Steve Ayer + * @date February, 2010 + */ + +configuration HplUserButtonC { + provides interface GeneralIO; + provides interface GpioInterrupt; +} +implementation { + components HplMsp430GeneralIOC as GeneralIOC; + components HplMsp430InterruptC as InterruptC; + + components new Msp430GpioC() as TiltDetectorC; + TiltDetectorC -> GeneralIOC.Port24; + GeneralIO = TiltDetectorC; + + components new Msp430InterruptC() as InterruptTiltDetectorC; + InterruptTiltDetectorC.HplInterrupt -> InterruptC.Port24; + GpioInterrupt = InterruptTiltDetectorC.Interrupt; +} diff --git a/tos/platforms/shimmer2/chips/tilt/TiltDetectorC.nc b/tos/platforms/shimmer2/chips/tilt/TiltDetectorC.nc new file mode 100644 index 00000000..51492dec --- /dev/null +++ b/tos/platforms/shimmer2/chips/tilt/TiltDetectorC.nc @@ -0,0 +1,63 @@ +/** + * Copyright (c) 2007 Arch Rock Corporation + * 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 the Arch Rock Corporation 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 THE + * ARCHED ROCK 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 + */ + +/** + * Implementation of the user button for the telosb platform. Get + * returns the current state of the button by reading the pin, + * regardless of whether enable() or disable() has been called on the + * Interface. Notify.enable() and Notify.disable() modify the + * underlying interrupt state of the pin, and have the effect of + * enabling or disabling notifications that the button has changed + * state. + * + * @author Gilman Tolle + * @version $Revision$ + * port to shimmer2 tilt switch + * @author Steve Ayer + * @date February, 2010 + */ + +configuration TiltDetectorC { + provides interface Notify; +} +implementation { + components HplTiltDetectorC; + components new SwitchToggleC(); + SwitchToggleC.GpioInterrupt -> HplTiltDetectorC.GpioInterrupt; + SwitchToggleC.GeneralIO -> HplTiltDetectorC.GeneralIO; + + components UserButtonP; + Notify = UserButtonP; + + components new TimerMilliC() as debounceTimer; + UserButtonP.NotifyLower -> SwitchToggleC.Notify; + UserButtonP.debounceTimer -> debounceTimer; +}