[Tinyos-contrib-commits] CVS: tinyos-1.x/contrib/handhelds/tos/lib/MMA7260_Accel MMA7260_AccelM.nc, NONE, 1.1

steve ayer ayer1 at users.sourceforge.net
Thu Sep 7 11:36:09 PDT 2006


Update of /cvsroot/tinyos/tinyos-1.x/contrib/handhelds/tos/lib/MMA7260_Accel
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv32673/tos/lib/MMA7260_Accel

Added Files:
	MMA7260_AccelM.nc 
Log Message:

added mma7260 accelerometer interface/lib
updated shimmer hardware.h adding adc6&7 pins
added hwtest for shimmer gyro board to hwtest; two versions, one three
channel, one six channel
updated interfaces for above and dma.adcinterrupt event now provides
register number 


--- NEW FILE: MMA7260_AccelM.nc ---
/*
 * Copyright (c) 2006, Intel 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 Intel 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 COPYRIGHT OWNER OR 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.
 *
 * Author: Steve Ayer
 *         August 2006
 */

includes MMA7260_Accel;

module MMA7260_AccelM {
  provides {
    interface StdControl;
    interface MMA7260_Accel;
  }
}

implementation {

  command result_t StdControl.init(){
    TOSH_MAKE_ACCEL_SLEEP_N_OUTPUT();         // sleep for accel
    TOSH_SEL_ACCEL_SLEEP_N_IOFUNC();

    TOSH_MAKE_ADC_ACCELZ_INPUT();         
    TOSH_SEL_ADC_ACCELZ_MODFUNC();

    TOSH_MAKE_ADC_ACCELY_INPUT();         
    TOSH_SEL_ADC_ACCELY_MODFUNC();

    TOSH_MAKE_ADC_ACCELX_INPUT();         
    TOSH_SEL_ADC_ACCELX_MODFUNC();

    return SUCCESS;
  }

  command result_t StdControl.start(){
    call MMA7260_Accel.wake(1);
    return SUCCESS;
  }

  command result_t StdControl.stop(){
    call MMA7260_Accel.wake(0);
    return SUCCESS;
  }

  command void MMA7260_Accel.wake (bool wakeup) {
    if(wakeup)
      TOSH_SET_ACCEL_SLEEP_N_PIN();    // wakes up accel board
    else
      TOSH_CLR_ACCEL_SLEEP_N_PIN();    // puts accel board to sleep
  }

  command void MMA7260_Accel.setSensitivity (enum MMA7260_RANGE sensitivity) {
    switch(sensitivity) {
    case RANGE_1_5G:
      TOSH_CLR_ACCEL_SEL0_PIN();
      TOSH_CLR_ACCEL_SEL1_PIN();
      break;
    case RANGE_2_0G:
      TOSH_SET_ACCEL_SEL0_PIN();
      TOSH_CLR_ACCEL_SEL1_PIN();
      break;
    case RANGE_4_0G:
      TOSH_CLR_ACCEL_SEL0_PIN();
      TOSH_SET_ACCEL_SEL1_PIN();
      break;
    case RANGE_6_0G:
      TOSH_SET_ACCEL_SEL0_PIN();
      TOSH_SET_ACCEL_SEL1_PIN();
      break;
    }
  }
}







More information about the Tinyos-contrib-commits mailing list