diff options
| author | Rosa chow <rchow@invensense.com> | 2011-11-09 18:57:46 -0800 |
|---|---|---|
| committer | Mathias Agopian <mathias@google.com> | 2011-11-10 14:36:17 -0800 |
| commit | 425eccbf15c25c32cf073595d25ff50e51570c1b (patch) | |
| tree | 519864cf2f737a69cca954c9cba9584c712ecd9c | |
| parent | 76c7c028ba3f0eeb17b7cf4709883ace0ffc83c5 (diff) | |
| download | platform_hardware_invensense-tools_r20.tar.gz platform_hardware_invensense-tools_r20.tar.bz2 platform_hardware_invensense-tools_r20.zip | |
Fix for sensor rate not updating correctlyandroid-sdk-adt_r20android-sdk-4.0.3_r1android-sdk-4.0.3-tools_r1android-cts-verifier-4.0_r1android-cts-verifier-4.0.3_r1android-cts-4.0.3_r2android-cts-4.0.3_r1android-4.0.4_r2.1android-4.0.4_r2android-4.0.4_r1.2android-4.0.4_r1.1android-4.0.4_r1android-4.0.3_r1.1android-4.0.3_r1tools_r20ics-plus-aospics-mr1-releaseics-mr1
Gyro sensor rate is not correct if accel is enabled, change sensor rate,
then enable gyro sensor.
.
Change-Id: I398bba660b34ed404a2ec156ad1f1a02dd6ed522
| -rw-r--r-- | mlsdk/mllite/ml.c | 3 | ||||
| -rw-r--r-- | mlsdk/mllite/mlFIFO.c | 11 |
2 files changed, 5 insertions, 9 deletions
diff --git a/mlsdk/mllite/ml.c b/mlsdk/mllite/ml.c index cb995a0..0489f5b 100644 --- a/mlsdk/mllite/ml.c +++ b/mlsdk/mllite/ml.c @@ -1775,10 +1775,11 @@ inv_error_t inv_set_mpu_sensors(unsigned long sensors) } } + inv_set_fifo_rate(fifoRate); + if (!(sensors & INV_DMP_PROCESSOR) && (sensors & INV_THREE_AXIS_ACCEL)) { struct ext_slave_config config; long data; - inv_set_fifo_rate(fifoRate); config.len = sizeof(long); config.key = MPU_SLAVE_CONFIG_IRQ_RESUME; diff --git a/mlsdk/mllite/mlFIFO.c b/mlsdk/mllite/mlFIFO.c index ce930ea..2c0d2f0 100644 --- a/mlsdk/mllite/mlFIFO.c +++ b/mlsdk/mllite/mlFIFO.c @@ -1964,9 +1964,9 @@ inv_error_t inv_set_fifo_rate(unsigned short fifoRate) if (state != INV_STATE_DMP_OPENED && state != INV_STATE_DMP_STARTED) return INV_ERROR_SM_IMPROPER_STATE; - if (mldl_cfg->requested_sensors & INV_DMP_PROCESSOR) { + fifo_obj.fifo_rate = fifoRate; - fifo_obj.fifo_rate = fifoRate; + if (mldl_cfg->requested_sensors & INV_DMP_PROCESSOR) { regs[0] = (unsigned char)((fifoRate >> 8) & 0xff); regs[1] = (unsigned char)(fifoRate & 0xff); @@ -2026,12 +2026,7 @@ inv_error_t inv_set_fifo_rate(unsigned short fifoRate) */ unsigned short inv_get_fifo_rate(void) { - struct mldl_cfg *mldl_cfg = inv_get_dl_config(); - if (mldl_cfg->requested_sensors & INV_DMP_PROCESSOR) - return fifo_obj.fifo_rate; - else - return (unsigned short)((1000 * fifo_obj.sample_step_size_ms) / - (inv_mpu_get_sampling_period_us(mldl_cfg))) - 1; + return fifo_obj.fifo_rate; } /** |
