altos: Use ao_data_accel_invert when changing orientation value
authorKeith Packard <keithp@keithp.com>
Thu, 18 Apr 2019 21:42:15 +0000 (14:42 -0700)
committerKeith Packard <keithp@keithp.com>
Thu, 18 Apr 2019 21:42:15 +0000 (14:42 -0700)
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 <keithp@keithp.com>
src/kernel/ao_config.c
src/kernel/ao_data.h
src/telefireone-v1.0/Makefile

index fb7d333..4de72c5 100644 (file)
@@ -665,10 +665,6 @@ ao_config_pad_orientation_show(void)
        printf("Pad orientation: %d\n", ao_config.pad_orientation);
 }
 
        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) 
 {
 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) {
                return;
        _ao_config_edit_start();
        if (ao_config.pad_orientation != r) {
-               int16_t t;
+               accel_t t;
                t = ao_config.accel_plus_g;
                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();
        }
        ao_config.pad_orientation = r;
        _ao_config_edit_finish();
index dda5de4..abbace8 100644 (file)
@@ -328,8 +328,6 @@ typedef int16_t     accel_t;
 
 #define HAS_ACCEL      1
 
 
 #define HAS_ACCEL      1
 
-#define AO_ACCEL_INVERT                0
-
 typedef int16_t accel_t;
 
 /* MPU6000 is hooked up so that positive y is positive acceleration */
 typedef int16_t accel_t;
 
 /* MPU6000 is hooked up so that positive y is positive acceleration */
index b2e7eec..afcdcd6 100644 (file)
@@ -89,3 +89,5 @@ install:
 
 uninstall:
 
 
 uninstall:
 
+echo:
+       echo $(PROG) $(VERSION)