diff options
Diffstat (limited to '60xx/mlsdk/mllite/accel.c')
-rw-r--r-- | 60xx/mlsdk/mllite/accel.c | 189 |
1 files changed, 0 insertions, 189 deletions
diff --git a/60xx/mlsdk/mllite/accel.c b/60xx/mlsdk/mllite/accel.c deleted file mode 100644 index 60b8d6c..0000000 --- a/60xx/mlsdk/mllite/accel.c +++ /dev/null @@ -1,189 +0,0 @@ -/* - $License: - Copyright 2011 InvenSense, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - $ - */ -/******************************************************************************* - * - * $Id: accel.c 4595 2011-01-25 01:43:03Z mcaramello $ - * - *******************************************************************************/ - -/** - * @defgroup ACCELDL - * @brief Motion Library - Accel Driver Layer. - * Provides the interface to setup and handle an accel - * connected to either the primary or the seconday I2C interface - * of the gyroscope. - * - * @{ - * @file accel.c - * @brief Accel setup and handling methods. -**/ - -/* ------------------ */ -/* - Include Files. - */ -/* ------------------ */ - -#include <string.h> - -#include "ml.h" -#include "mlinclude.h" -#include "dmpKey.h" -#include "mlFIFO.h" -#include "mldl.h" -#include "mldl_cfg.h" -#include "mlMathFunc.h" -#include "mlsl.h" -#include "mlos.h" - -#include "log.h" -#undef MPL_LOG_TAG -#define MPL_LOG_TAG "MPL-accel" - -#define ACCEL_DEBUG 0 - -/* --------------------- */ -/* - Global Variables. - */ -/* --------------------- */ - -/* --------------------- */ -/* - Static Variables. - */ -/* --------------------- */ - -/* --------------- */ -/* - Prototypes. - */ -/* --------------- */ - -/* -------------- */ -/* - Externs. - */ -/* -------------- */ - -/* -------------- */ -/* - Functions. - */ -/* -------------- */ - -/** - * @brief Used to determine if an accel is configured and - * used by the MPL. - * @return INV_SUCCESS if the accel is present. - */ -unsigned char inv_accel_present(void) -{ - INVENSENSE_FUNC_START; - struct mldl_cfg *mldl_cfg = inv_get_dl_config(); - if (NULL != mldl_cfg->accel && - NULL != mldl_cfg->accel->resume && - mldl_cfg->requested_sensors & INV_THREE_AXIS_ACCEL) - return TRUE; - else - return FALSE; -} - -/** - * @brief Query the accel slave address. - * @return The 7-bit accel slave address. - */ -unsigned char inv_get_slave_addr(void) -{ - INVENSENSE_FUNC_START; - struct mldl_cfg *mldl_cfg = inv_get_dl_config(); - if (NULL != mldl_cfg->pdata) - return mldl_cfg->pdata->accel.address; - else - return 0; -} - -/** - * @brief Get the ID of the accel in use. - * @return ID of the accel in use. - */ -unsigned short inv_get_accel_id(void) -{ - INVENSENSE_FUNC_START; - struct mldl_cfg *mldl_cfg = inv_get_dl_config(); - if (NULL != mldl_cfg->accel) { - return mldl_cfg->accel->id; - } - return ID_INVALID; -} - -/** - * @brief Get a sample of accel data from the device. - * @param data - * the buffer to store the accel raw data for - * X, Y, and Z axes. - * @return INV_SUCCESS or a non-zero error code. - */ -inv_error_t inv_get_accel_data(long *data) -{ - struct mldl_cfg *mldl_cfg = inv_get_dl_config(); - inv_error_t result; - unsigned char raw_data[2 * ACCEL_NUM_AXES]; - long tmp[ACCEL_NUM_AXES]; - int ii; - signed char *mtx = mldl_cfg->pdata->accel.orientation; - char accelId = mldl_cfg->accel->id; - - if (NULL == data) - return INV_ERROR_INVALID_PARAMETER; - - if (mldl_cfg->accel->read_len > sizeof(raw_data)) - return INV_ERROR_ASSERTION_FAILURE; - - result = (inv_error_t) inv_mpu_read_accel(mldl_cfg, - inv_get_serial_handle(), - inv_get_serial_handle(), - raw_data); - if (result == INV_ERROR_ACCEL_DATA_NOT_READY) { - return result; - } - if (result) { - LOG_RESULT_LOCATION(result); - return result; - } - - for (ii = 0; ii < ARRAY_SIZE(tmp); ii++) { - if (EXT_SLAVE_LITTLE_ENDIAN == mldl_cfg->accel->endian) { - tmp[ii] = (long)((signed char)raw_data[2 * ii + 1]) * 256; - tmp[ii] += (long)((unsigned char)raw_data[2 * ii]); - } else if ((EXT_SLAVE_BIG_ENDIAN == mldl_cfg->accel->endian) || - (EXT_SLAVE_FS16_BIG_ENDIAN == mldl_cfg->accel->endian)) { - tmp[ii] = (long)((signed char)raw_data[2 * ii]) * 256; - tmp[ii] += (long)((unsigned char)raw_data[2 * ii + 1]); - if (accelId == ACCEL_ID_KXSD9) { - tmp[ii] = (long)((short)(((unsigned short)tmp[ii]) - + ((unsigned short)0x8000))); - } - } else if (EXT_SLAVE_FS8_BIG_ENDIAN == mldl_cfg->accel->endian) { - tmp[ii] = (long)((signed char)raw_data[ii]) * 256; - } else { - result = INV_ERROR_FEATURE_NOT_IMPLEMENTED; - } - } - - for (ii = 0; ii < ARRAY_SIZE(tmp); ii++) { - data[ii] = ((long)tmp[0] * mtx[3 * ii] + - (long)tmp[1] * mtx[3 * ii + 1] + - (long)tmp[2] * mtx[3 * ii + 2]); - } - - //MPL_LOGI("ACCEL: %8ld, %8ld, %8ld\n", data[0], data[1], data[2]); - return result; -} - -/** - * @} - */ |