summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/ao_config.c10
-rw-r--r--src/core/ao_data.h8
2 files changed, 13 insertions, 5 deletions
diff --git a/src/core/ao_config.c b/src/core/ao_config.c
index 590d8a49..4482f673 100644
--- a/src/core/ao_config.c
+++ b/src/core/ao_config.c
@@ -514,6 +514,10 @@ ao_config_pad_orientation_show(void) __reentrant
printf("Pad orientation: %d\n", ao_config.pad_orientation);
}
+#ifndef AO_ACCEL_INVERT
+#define AO_ACCEL_INVERT 0x7fff
+#endif
+
void
ao_config_pad_orientation_set(void) __reentrant
{
@@ -523,10 +527,10 @@ ao_config_pad_orientation_set(void) __reentrant
_ao_config_edit_start();
ao_cmd_lex_i &= 1;
if (ao_config.pad_orientation != ao_cmd_lex_i) {
- uint16_t t;
+ int16_t t;
t = ao_config.accel_plus_g;
- ao_config.accel_plus_g = 0x7fff - ao_config.accel_minus_g;
- ao_config.accel_minus_g = 0x7fff - t;
+ ao_config.accel_plus_g = AO_ACCEL_INVERT - ao_config.accel_minus_g;
+ ao_config.accel_minus_g = AO_ACCEL_INVERT - t;
}
ao_config.pad_orientation = ao_cmd_lex_i;
_ao_config_edit_finish();
diff --git a/src/core/ao_data.h b/src/core/ao_data.h
index e1d8a139..c4b062fd 100644
--- a/src/core/ao_data.h
+++ b/src/core/ao_data.h
@@ -273,14 +273,16 @@ typedef int16_t accel_t;
/* MMA655X is hooked up so that positive values represent negative acceleration */
+#define AO_ACCEL_INVERT 4095
+
#define ao_data_accel(packet) ((packet)->mma655x)
#if AO_MMA655X_INVERT
-#define ao_data_accel_cook(packet) (4095 - (packet)->mma655x)
+#define ao_data_accel_cook(packet) (AO_ACCEL_INVERT - (packet)->mma655x)
#else
#define ao_data_accel_cook(packet) ((packet)->mma655x)
#endif
#define ao_data_set_accel(packet, accel) ((packet)->mma655x = (accel))
-#define ao_data_accel_invert(accel) (4095 - (accel))
+#define ao_data_accel_invert(accel) (AO_ACCEL_INVERT - (accel))
#endif
@@ -288,6 +290,8 @@ typedef int16_t accel_t;
#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 */