From f9dd89b9bc6c66355a59b37b65fe1538075b7653 Mon Sep 17 00:00:00 2001 From: Nicholas G Date: Thu, 6 Jan 2022 11:17:12 -0500 Subject: [PATCH] Disable RGB on start hold, added mouse sens multiplier --- build_uf2/Pico_Game_Controller.uf2 | Bin 74240 -> 74240 bytes src/controller_config.h | 1 + src/pico_game_controller.c | 28 ++++++++++++++++------------ 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/build_uf2/Pico_Game_Controller.uf2 b/build_uf2/Pico_Game_Controller.uf2 index cfd24d2432c5610368c63759572672e3553fcf47..c97b943cda61dde7dafe9341061fa1750157c790 100644 GIT binary patch delta 8314 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 Hw&s5TzN*4I diff --git a/src/controller_config.h b/src/controller_config.h index d948388..03f5e23 100644 --- a/src/controller_config.h +++ b/src/controller_config.h @@ -5,6 +5,7 @@ #define LED_GPIO_SIZE 10 // Number of switch LEDs #define ENC_GPIO_SIZE 2 // Number of encoders #define ENC_PPR 600 // Encoder PPR +#define MOUSE_SENS 1 // Mouse sensitivity multiplier #define ENC_DEBOUNCE true // Encoder Debouncing #define SW_DEBOUNCE_TIME_US 4000 // Switch debounce delay in us #define ENC_PULSE (ENC_PPR * 4) // 4 pulses per PPR diff --git a/src/pico_game_controller.c b/src/pico_game_controller.c index db2cf5a..84d9b32 100644 --- a/src/pico_game_controller.c +++ b/src/pico_game_controller.c @@ -201,7 +201,8 @@ void key_mode() { tud_hid_n_report(0x00, REPORT_ID_KEYBOARD, &nkro_report, sizeof(nkro_report)); } else { - tud_hid_mouse_report(REPORT_ID_MOUSE, 0x00, delta[0], delta[1], 0, 0); + tud_hid_mouse_report(REPORT_ID_MOUSE, 0x00, delta[0] * MOUSE_SENS, + delta[1] * MOUSE_SENS, 0, 0); } // Alternate reports kbm_report = !kbm_report; @@ -239,6 +240,17 @@ void dma_handler() { } } +/** + * Second Core Runnable + **/ +void core1_entry() { + uint32_t counter = 0; + while (1) { + ws2812b_update(++counter); + sleep_ms(5); + } +} + /** * Initialize Board Pins **/ @@ -308,16 +320,10 @@ void init() { loop_mode = &joy_mode; joy_mode_check = true; } -} -/** - * Second Core Runnable - **/ -void core1_entry() { - uint32_t counter = 0; - while (1) { - ws2812b_update(++counter); - sleep_ms(5); + // Disable RGB + if (gpio_get(SW_GPIO[8])) { + multicore_launch_core1(core1_entry); } } @@ -329,8 +335,6 @@ int main(void) { init(); tusb_init(); - multicore_launch_core1(core1_entry); - while (1) { tud_task(); // tinyusb device task update_inputs();