X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fdrivers%2Fao_mpu9250.c;h=a77abf98dfe7bcfa2d6ce3b8267b1571dd7d642b;hb=de37d4a17e8eac517ed00f179c9cd5c09b820dfc;hp=74e444a9d0950ba21a4439d19a5adcc5999a0f3c;hpb=0686a7b8aec524d81bda4c572549a3a068ce0eed;p=fw%2Faltos diff --git a/src/drivers/ao_mpu9250.c b/src/drivers/ao_mpu9250.c index 74e444a9..a77abf98 100644 --- a/src/drivers/ao_mpu9250.c +++ b/src/drivers/ao_mpu9250.c @@ -26,8 +26,6 @@ static uint8_t ao_mpu9250_configured; -extern uint8_t ao_sensor_errors; - #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 -#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(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, \ @@ -174,7 +176,7 @@ _ao_mpu9250_sample(struct ao_mpu9250_sample *sample) /* 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 } @@ -361,7 +363,7 @@ _ao_mpu9250_setup(void) } if (st_tries == ST_TRIES) - ao_sensor_errors = 1; + AO_SENSOR_ERROR(AO_DATA_MPU9250); /* Set up the mag sensor */ @@ -372,7 +374,7 @@ _ao_mpu9250_setup(void) } if (mag_tries == MAG_TRIES) - ao_sensor_errors = 1; + AO_SENSOR_ERROR(AO_DATA_MPU9250); /* Select continuous mode 2 (100Hz), 16 bit samples */ @@ -561,7 +563,7 @@ ao_mpu9250_init(void) */ 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]);