X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=src%2Fdrivers%2Fao_bmx160.c;fp=src%2Fdrivers%2Fao_bmx160.c;h=eabe0783253d05c788ff97c2cfc4cf9d12abe9c0;hp=427a081bc36e21db5e56a65e92101225f0690517;hb=c49bd3cb0c31a51fae79ddc92237cc309be9a242;hpb=d225adc3af9e5726d436cbbdbf8dcc5837e50804 diff --git a/src/drivers/ao_bmx160.c b/src/drivers/ao_bmx160.c index 427a081b..eabe0783 100644 --- a/src/drivers/ao_bmx160.c +++ b/src/drivers/ao_bmx160.c @@ -109,7 +109,7 @@ _ao_bmm150_reg_read2(uint8_t lo_addr, uint8_t hi_addr) uint8_t lo = _ao_bmm150_reg_read(lo_addr); uint8_t hi = _ao_bmm150_reg_read(hi_addr); - return ((uint16_t) hi << 8) | lo; + return (uint16_t) (((uint16_t) hi << 8) | (uint16_t) lo); } /* @@ -217,7 +217,7 @@ static int16_t compensate_x(int16_t mag_data_x, uint16_t data_rhall) //printf("comp_x10 %d\n", process_comp_x10); retval = ((int16_t)(process_comp_x10 / 8192)); //printf("ret 1 %d\n", retval); - retval = (retval + (((int16_t)ao_bmm150_trim.dig_x1) * 8)) / 16; + retval = (int16_t) ((retval + (((int16_t)ao_bmm150_trim.dig_x1) * 8)) / 16); //printf("final %d\n", retval); } else @@ -282,7 +282,7 @@ static int16_t compensate_y(int16_t mag_data_y, uint16_t data_rhall) process_comp_y8 = (((process_comp_y6 + ((int32_t)0x100000)) * process_comp_y7) / 4096); process_comp_y9 = (((int32_t)mag_data_y) * process_comp_y8); retval = (int16_t)(process_comp_y9 / 8192); - retval = (retval + (((int16_t)ao_bmm150_trim.dig_y1) * 8)) / 16; + retval = (int16_t) ((retval + (((int16_t)ao_bmm150_trim.dig_y1) * 8)) / 16); } else { @@ -504,7 +504,7 @@ _ao_bmx160_setup(void) BMX160_ACC_RANGE_16G); for (r = 0x3; r <= 0x1b; r++) - (void) _ao_bmx160_reg_read(r); + (void) _ao_bmx160_reg_read((uint8_t) r); /* Configure gyro: * @@ -560,16 +560,16 @@ _ao_bmx160_setup(void) _ao_bmm150_reg_write(BMM150_REPZ, BMM150_REPZ_VALUE(15)); /* Read Trim values */ - ao_bmm150_trim.dig_x1 = _ao_bmm150_reg_read(BMM150_DIG_X1); - ao_bmm150_trim.dig_y1 = _ao_bmm150_reg_read(BMM150_DIG_Y1); - ao_bmm150_trim.dig_z4 = _ao_bmm150_reg_read2(BMM150_DIG_Z4_LSB, BMM150_DIG_Z4_MSB); - ao_bmm150_trim.dig_x2 = _ao_bmm150_reg_read(BMM150_DIG_X2); - ao_bmm150_trim.dig_y2 = _ao_bmm150_reg_read(BMM150_DIG_Y2); - ao_bmm150_trim.dig_z2 = _ao_bmm150_reg_read2(BMM150_DIG_Z2_LSB, BMM150_DIG_Z2_MSB); + ao_bmm150_trim.dig_x1 = (int8_t) _ao_bmm150_reg_read(BMM150_DIG_X1); + ao_bmm150_trim.dig_y1 = (int8_t) _ao_bmm150_reg_read(BMM150_DIG_Y1); + ao_bmm150_trim.dig_z4 = (int8_t) _ao_bmm150_reg_read2(BMM150_DIG_Z4_LSB, BMM150_DIG_Z4_MSB); + ao_bmm150_trim.dig_x2 = (int8_t) _ao_bmm150_reg_read(BMM150_DIG_X2); + ao_bmm150_trim.dig_y2 = (int8_t) _ao_bmm150_reg_read(BMM150_DIG_Y2); + ao_bmm150_trim.dig_z2 = (int8_t) _ao_bmm150_reg_read2(BMM150_DIG_Z2_LSB, BMM150_DIG_Z2_MSB); ao_bmm150_trim.dig_z1 = _ao_bmm150_reg_read2(BMM150_DIG_Z1_LSB, BMM150_DIG_Z1_MSB); ao_bmm150_trim.dig_xyz1 = _ao_bmm150_reg_read2(BMM150_DIG_XYZ1_LSB, BMM150_DIG_XYZ1_MSB); - ao_bmm150_trim.dig_z3 = _ao_bmm150_reg_read2(BMM150_DIG_Z3_LSB, BMM150_DIG_Z3_MSB); - ao_bmm150_trim.dig_xy2 = _ao_bmm150_reg_read(BMM150_DIG_XY2); + ao_bmm150_trim.dig_z3 = (int8_t) _ao_bmm150_reg_read2(BMM150_DIG_Z3_LSB, BMM150_DIG_Z3_MSB); + ao_bmm150_trim.dig_xy2 = (int8_t) _ao_bmm150_reg_read(BMM150_DIG_XY2); ao_bmm150_trim.dig_xy1 = _ao_bmm150_reg_read(BMM150_DIG_XY1); /* To get data out of the magnetometer, set the control op mode to 'forced', then read