summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRosa chow <rchow@invensense.com>2011-11-09 18:57:46 -0800
committerMathias Agopian <mathias@google.com>2011-11-10 14:36:17 -0800
commit425eccbf15c25c32cf073595d25ff50e51570c1b (patch)
tree519864cf2f737a69cca954c9cba9584c712ecd9c
parent76c7c028ba3f0eeb17b7cf4709883ace0ffc83c5 (diff)
downloadplatform_hardware_invensense-tools_r20.tar.gz
platform_hardware_invensense-tools_r20.tar.bz2
platform_hardware_invensense-tools_r20.zip
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.c3
-rw-r--r--mlsdk/mllite/mlFIFO.c11
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;
}
/**