projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altos/st7565: Set default contrast to 13
[fw/altos]
/
src
/
drivers
/
ao_mpu9250.c
diff --git
a/src/drivers/ao_mpu9250.c
b/src/drivers/ao_mpu9250.c
index 9dce9f1a5a0d4f79f241c50e2a238a09d2b2e906..63d8d6d7fe31ffbc32dc8c786dc349df9bfee413 100644
(file)
--- a/
src/drivers/ao_mpu9250.c
+++ b/
src/drivers/ao_mpu9250.c
@@
-26,8
+26,6
@@
static uint8_t ao_mpu9250_configured;
static uint8_t ao_mpu9250_configured;
-extern uint8_t ao_sensor_errors;
-
#ifndef AO_MPU9250_I2C_INDEX
#define AO_MPU9250_SPI 1
#else
#ifndef AO_MPU9250_I2C_INDEX
#define AO_MPU9250_SPI 1
#else
@@
-36,7
+34,11
@@
extern uint8_t ao_sensor_errors;
#if AO_MPU9250_SPI
#if AO_MPU9250_SPI
-#define ao_mpu9250_spi_get() ao_spi_get(AO_MPU9250_SPI_BUS, AO_SPI_SPEED_1MHz)
+#ifndef AO_MPU9250_SPI_SPEED
+#define AO_MPU9250_SPI_SPEED ao_spi_speed(AO_MPU9250_SPI_BUS, 1000000) /* 1MHz max SCLK */
+#endif
+
+#define ao_mpu9250_spi_get() ao_spi_get(AO_MPU9250_SPI_BUS, AO_MPU9250_SPI_SPEED)
#define ao_mpu9250_spi_put() ao_spi_put(AO_MPU9250_SPI_BUS)
#define ao_mpu9250_spi_start() ao_spi_set_cs(AO_MPU9250_SPI_CS_PORT, \
#define ao_mpu9250_spi_put() ao_spi_put(AO_MPU9250_SPI_BUS)
#define ao_mpu9250_spi_start() ao_spi_set_cs(AO_MPU9250_SPI_CS_PORT, \
@@
-63,7
+65,7
@@
_ao_mpu9250_reg_write(uint8_t addr, uint8_t value)
#else
ao_i2c_get(AO_MPU9250_I2C_INDEX);
ao_i2c_start(AO_MPU9250_I2C_INDEX, MPU9250_ADDR_WRITE);
#else
ao_i2c_get(AO_MPU9250_I2C_INDEX);
ao_i2c_start(AO_MPU9250_I2C_INDEX, MPU9250_ADDR_WRITE);
- ao_i2c_send(d, 2, AO_MPU9250_I2C_INDEX,
TRUE
);
+ ao_i2c_send(d, 2, AO_MPU9250_I2C_INDEX,
true
);
ao_i2c_put(AO_MPU9250_I2C_INDEX);
#endif
}
ao_i2c_put(AO_MPU9250_I2C_INDEX);
#endif
}
@@
-80,9
+82,9
@@
_ao_mpu9250_read(uint8_t addr, void *data, uint8_t len)
#else
ao_i2c_get(AO_MPU9250_I2C_INDEX);
ao_i2c_start(AO_MPU9250_I2C_INDEX, MPU9250_ADDR_WRITE);
#else
ao_i2c_get(AO_MPU9250_I2C_INDEX);
ao_i2c_start(AO_MPU9250_I2C_INDEX, MPU9250_ADDR_WRITE);
- ao_i2c_send(&addr, 1, AO_MPU9250_I2C_INDEX,
FALSE
);
+ ao_i2c_send(&addr, 1, AO_MPU9250_I2C_INDEX,
false
);
ao_i2c_start(AO_MPU9250_I2C_INDEX, MPU9250_ADDR_READ);
ao_i2c_start(AO_MPU9250_I2C_INDEX, MPU9250_ADDR_READ);
- ao_i2c_recv(data, len, AO_MPU9250_I2C_INDEX,
TRUE
);
+ ao_i2c_recv(data, len, AO_MPU9250_I2C_INDEX,
true
);
ao_i2c_put(AO_MPU9250_I2C_INDEX);
#endif
}
ao_i2c_put(AO_MPU9250_I2C_INDEX);
#endif
}
@@
-100,9
+102,9
@@
_ao_mpu9250_reg_read(uint8_t addr)
#else
ao_i2c_get(AO_MPU9250_I2C_INDEX);
ao_i2c_start(AO_MPU9250_I2C_INDEX, MPU9250_ADDR_WRITE);
#else
ao_i2c_get(AO_MPU9250_I2C_INDEX);
ao_i2c_start(AO_MPU9250_I2C_INDEX, MPU9250_ADDR_WRITE);
- ao_i2c_send(&addr, 1, AO_MPU9250_I2C_INDEX,
FALSE
);
+ ao_i2c_send(&addr, 1, AO_MPU9250_I2C_INDEX,
false
);
ao_i2c_start(AO_MPU9250_I2C_INDEX, MPU9250_ADDR_READ);
ao_i2c_start(AO_MPU9250_I2C_INDEX, MPU9250_ADDR_READ);
- ao_i2c_recv(&value, 1, AO_MPU9250_I2C_INDEX,
TRUE
);
+ ao_i2c_recv(&value, 1, AO_MPU9250_I2C_INDEX,
true
);
ao_i2c_put(AO_MPU9250_I2C_INDEX);
#endif
return value;
ao_i2c_put(AO_MPU9250_I2C_INDEX);
#endif
return value;
@@
-174,7
+176,7
@@
_ao_mpu9250_sample(struct ao_mpu9250_sample *sample)
/* byte swap */
while (i--) {
uint16_t t = *d;
/* byte swap */
while (i--) {
uint16_t t = *d;
- *d++ = (
t >> 8) | (t << 8
);
+ *d++ = (
uint16_t) ((uint16_t) (t >> 8) | (uint16_t) (t << 8)
);
}
#endif
}
}
#endif
}
@@
-361,7
+363,7
@@
_ao_mpu9250_setup(void)
}
if (st_tries == ST_TRIES)
}
if (st_tries == ST_TRIES)
-
ao_sensor_errors = 1
;
+
AO_SENSOR_ERROR(AO_DATA_MPU9250)
;
/* Set up the mag sensor */
/* Set up the mag sensor */
@@
-372,7
+374,7
@@
_ao_mpu9250_setup(void)
}
if (mag_tries == MAG_TRIES)
}
if (mag_tries == MAG_TRIES)
-
ao_sensor_errors = 1
;
+
AO_SENSOR_ERROR(AO_DATA_MPU9250)
;
/* Select continuous mode 2 (100Hz), 16 bit samples */
/* Select continuous mode 2 (100Hz), 16 bit samples */
@@
-561,7
+563,7
@@
ao_mpu9250_init(void)
*/
ao_cur_task = &ao_mpu9250_task;
*/
ao_cur_task = &ao_mpu9250_task;
- ao_
spi_get(AO_MPU9250_SPI_BUS, AO_SPI_SPEED_1MHz
);
+ ao_
mpu9250_spi_get(
);
ao_cur_task = NULL;
#endif
ao_cmd_register(&ao_mpu9250_cmds[0]);
ao_cur_task = NULL;
#endif
ao_cmd_register(&ao_mpu9250_cmds[0]);