summaryrefslogtreecommitdiff
path: root/src/drivers/ao_mpu6000.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2012-05-06 22:47:33 -0700
committerKeith Packard <keithp@keithp.com>2012-05-06 22:47:33 -0700
commit0f0cc91ce8e9807dca48a5c0c53d821f5060e245 (patch)
tree133cab98a14cbde57db187116022a34bc2394d97 /src/drivers/ao_mpu6000.c
parent69feb1e3d94a028d04529edb015654bafd06353b (diff)
altos: STM i2c work.
Start now driven by interrupts Send now done with DMA and interrupts Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/drivers/ao_mpu6000.c')
-rw-r--r--src/drivers/ao_mpu6000.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/drivers/ao_mpu6000.c b/src/drivers/ao_mpu6000.c
index 290f1390..d7f67d6e 100644
--- a/src/drivers/ao_mpu6000.c
+++ b/src/drivers/ao_mpu6000.c
@@ -35,10 +35,8 @@ ao_mpu6000_write(uint8_t addr, uint8_t *data, uint8_t len)
{
ao_i2c_get(AO_MPU6000_I2C_INDEX);
ao_i2c_start(AO_MPU6000_I2C_INDEX, MPU6000_ADDR_WRITE);
- ao_i2c_send(&addr, 1, AO_MPU6000_I2C_INDEX);
- if (len)
- ao_i2c_send(data, len, AO_MPU6000_I2C_INDEX);
- ao_i2c_stop(AO_MPU6000_I2C_INDEX);
+ ao_i2c_send(&addr, 1, AO_MPU6000_I2C_INDEX, FALSE);
+ ao_i2c_send(data, len, AO_MPU6000_I2C_INDEX, TRUE);
ao_i2c_put(AO_MPU6000_I2C_INDEX);
}
@@ -47,11 +45,9 @@ ao_mpu6000_read(uint8_t addr, uint8_t *data, uint8_t len)
{
ao_i2c_get(AO_MPU6000_I2C_INDEX);
ao_i2c_start(AO_MPU6000_I2C_INDEX, MPU6000_ADDR_WRITE);
- ao_i2c_send(&addr, 1, AO_MPU6000_I2C_INDEX);
+ ao_i2c_send(&addr, 1, AO_MPU6000_I2C_INDEX, FALSE);
ao_i2c_start(AO_MPU6000_I2C_INDEX, MPU6000_ADDR_READ);
- if (len)
- ao_i2c_recv(data, len, AO_MPU6000_I2C_INDEX);
- ao_i2c_stop(AO_MPU6000_I2C_INDEX);
+ ao_i2c_recv(data, len, AO_MPU6000_I2C_INDEX, TRUE);
ao_i2c_put(AO_MPU6000_I2C_INDEX);
}
@@ -78,9 +74,11 @@ ao_mpu6000_show(void)
ao_mpu6000_read(MPU6000_WHO_AM_I, data, 1);
printf ("mpu6000 WHO_AM_I: %02x\n", data[0]);
- ao_mpu6000_read(MPU6000_ACCEL_XOUT_H, data, 1);
+#if 0
+ ao_mpu6000_read(MPU6000_ACCEL_XOUT_H, data, 14);
for (i = 0; i < 14; i++)
printf ("reg %02x: %02x\n", i + MPU6000_ACCEL_XOUT_H, data[i]);
+#endif
}
static const struct ao_cmds ao_mpu6000_cmds[] = {