From 53c6b6e41fd50889cdfa939378fb51066e7f70e2 Mon Sep 17 00:00:00 2001 From: Nicholas G Date: Sun, 26 Sep 2021 13:27:02 -0400 Subject: [PATCH] Cleanup of encoder rollover logic --- build_uf2/Pico_Game_Controller.uf2 | Bin 75264 -> 74752 bytes src/pico_game_controller.c | 19 +------------------ 2 files changed, 1 insertion(+), 18 deletions(-) diff --git a/build_uf2/Pico_Game_Controller.uf2 b/build_uf2/Pico_Game_Controller.uf2 index dbfdc9b46e93d47f6a1eade6c89db1a536829611..793d01fd5068d9587e029c6d75e646639af1936d 100644 GIT binary patch delta 7919 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 diff --git a/src/pico_game_controller.c b/src/pico_game_controller.c index f55deef..9627269 100644 --- a/src/pico_game_controller.c +++ b/src/pico_game_controller.c @@ -260,24 +260,7 @@ void key_mode() { // find the delta between previous and current enc_val int delta[ENC_GPIO_SIZE] = {0}; for (int i = 0; i < ENC_GPIO_SIZE; i++) { - int changeType; // -1 for negative 1 for positive - if (enc_val[i] > prev_enc_val[i]) { // if the new value is bigger its - // a positive change - delta[i] = enc_val[i] - prev_enc_val[i]; - changeType = 1; - } else { // otherwise its a negative change - delta[i] = prev_enc_val[i] - enc_val[i]; - changeType = -1; - } - // Overflow / Underflow - if (delta[i] > ENC_ROLLOVER) { - // Reverse the change type due to overflow / underflow - changeType *= -1; - delta[i] = - UINT32_MAX - delta[i] + 1; // this should give us how much we - // overflowed / underflowed by - } - delta[i] *= changeType * (ENC_REV[i] ? 1 : -1); // set direction + delta[i] = (enc_val[i] - prev_enc_val[i]) * (ENC_REV[i] ? 1 : -1); prev_enc_val[i] = enc_val[i]; } tud_hid_mouse_report(REPORT_ID_MOUSE, 0x00, delta[0], delta[1], 0, 0);