summaryrefslogtreecommitdiff
path: root/quantum/encoder.c
diff options
context:
space:
mode:
authorJames Young <xxiinophobia@yahoo.com>2020-02-29 12:00:00 -0800
committerJames Young <xxiinophobia@yahoo.com>2020-02-29 11:59:30 -0800
commit26eef35f07698d23aafae90e1c230b52e100a334 (patch)
treeeb8e43fc58ca55788e6e89430af0db55ea79e324 /quantum/encoder.c
parent85041ff05bf0e5f4ff4535caf6e638491a5614c8 (diff)
downloadqmk_firmware-26eef35f07698d23aafae90e1c230b52e100a334.tar.gz
qmk_firmware-26eef35f07698d23aafae90e1c230b52e100a334.zip
2020 February 29 Breaking Changes Update (#8064)
Diffstat (limited to 'quantum/encoder.c')
-rw-r--r--quantum/encoder.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/quantum/encoder.c b/quantum/encoder.c
index 8e11562eb7..81ec1bb376 100644
--- a/quantum/encoder.c
+++ b/quantum/encoder.c
@@ -35,6 +35,13 @@
static pin_t encoders_pad_a[] = ENCODERS_PAD_A;
static pin_t encoders_pad_b[] = ENCODERS_PAD_B;
+#ifndef ENCODER_DIRECTION_FLIP
+# define ENCODER_CLOCKWISE true
+# define ENCODER_COUNTER_CLOCKWISE false
+#else
+# define ENCODER_CLOCKWISE false
+# define ENCODER_COUNTER_CLOCKWISE true
+#endif
static int8_t encoder_LUT[] = {0, -1, 1, 0, 1, 0, 0, -1, -1, 0, 0, 1, 0, 1, -1, 0};
static uint8_t encoder_state[NUMBER_OF_ENCODERS] = {0};
@@ -86,11 +93,11 @@ static void encoder_update(int8_t index, uint8_t state) {
encoder_pulses[i] += encoder_LUT[state & 0xF];
if (encoder_pulses[i] >= ENCODER_RESOLUTION) {
encoder_value[index]++;
- encoder_update_kb(index, true);
+ encoder_update_kb(index, ENCODER_COUNTER_CLOCKWISE);
}
if (encoder_pulses[i] <= -ENCODER_RESOLUTION) { // direction is arbitrary here, but this clockwise
encoder_value[index]--;
- encoder_update_kb(index, false);
+ encoder_update_kb(index, ENCODER_CLOCKWISE);
}
encoder_pulses[i] %= ENCODER_RESOLUTION;
}
@@ -113,12 +120,12 @@ void encoder_update_raw(uint8_t* slave_state) {
while (delta > 0) {
delta--;
encoder_value[index]++;
- encoder_update_kb(index, true);
+ encoder_update_kb(index, ENCODER_COUNTER_CLOCKWISE);
}
while (delta < 0) {
delta++;
encoder_value[index]--;
- encoder_update_kb(index, false);
+ encoder_update_kb(index, ENCODER_CLOCKWISE);
}
}
}