From df08028ff5dd892dafa667fde1fbf9de43f82fea Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Thu, 18 Apr 2019 14:42:15 -0700 Subject: altos: Use ao_data_accel_invert when changing orientation value Instead of using AO_ACCEL_INVERT, use the macro which flips the values around. This fixes a bug with ADXL375 flight computers (EasyMega v2.0) where the accel cal values would be scrambled when changing orientation. Signed-off-by: Keith Packard --- src/kernel/ao_config.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'src/kernel/ao_config.c') diff --git a/src/kernel/ao_config.c b/src/kernel/ao_config.c index fb7d333b..4de72c5c 100644 --- a/src/kernel/ao_config.c +++ b/src/kernel/ao_config.c @@ -665,10 +665,6 @@ ao_config_pad_orientation_show(void) printf("Pad orientation: %d\n", ao_config.pad_orientation); } -#ifndef AO_ACCEL_INVERT -#define AO_ACCEL_INVERT 0x7fff -#endif - static void ao_config_pad_orientation_set(void) { @@ -677,10 +673,10 @@ ao_config_pad_orientation_set(void) return; _ao_config_edit_start(); if (ao_config.pad_orientation != r) { - int16_t t; + accel_t t; t = ao_config.accel_plus_g; - ao_config.accel_plus_g = AO_ACCEL_INVERT - ao_config.accel_minus_g; - ao_config.accel_minus_g = AO_ACCEL_INVERT - t; + ao_config.accel_plus_g = ao_data_accel_invert(ao_config.accel_minus_g); + ao_config.accel_minus_g = ao_data_accel_invert(t); } ao_config.pad_orientation = r; _ao_config_edit_finish(); -- cgit v1.2.3