From a3224ac9aa9dd2a70f99636d8dfe2ecb8e692e7e Mon Sep 17 00:00:00 2001 From: whowechina Date: Tue, 25 Feb 2025 10:22:20 +0800 Subject: [PATCH] Forced update for nkro --- Production/Firmware/chu_pico.uf2 | Bin 167424 -> 167424 bytes firmware/src/main.c | 20 ++++++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Production/Firmware/chu_pico.uf2 b/Production/Firmware/chu_pico.uf2 index 168ff1077b1c7b8a39e8f7df29459b82433df0af..4fef43a0c8e780d37a494238991733485c3d03ed 100644 GIT binary patch delta 17228 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 gI+OBhl3Ht!a%)m-uOV3FQ8(tGlbqd%kj4 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 Hn;ribtr|%( diff --git a/firmware/src/main.c b/firmware/src/main.c index c3567a2..8233d7c 100644 --- a/firmware/src/main.c +++ b/firmware/src/main.c @@ -52,25 +52,29 @@ struct __attribute__((packed)) { void report_usb_hid() { - static uint64_t next_report_time = 0; + static uint64_t next_joy_time = 0; + static uint64_t next_nkro_time = 0; if (tud_hid_ready()) { hid_joy.HAT = 0; hid_joy.VendorSpec = 0; if (chu_cfg->hid.joy) { if ((memcmp(&hid_joy, &sent_hid_joy, sizeof(hid_joy)) != 0) || - (time_us_64() > next_report_time)) { + (time_us_64() > next_joy_time)) { if (tud_hid_report(REPORT_ID_JOYSTICK, &hid_joy, sizeof(hid_joy))) { sent_hid_joy = hid_joy; - next_report_time = time_us_64() + 2500; // forced report every 4ms + next_joy_time = time_us_64() + 2500; // forced report every 4ms } } } - if (chu_cfg->hid.nkro && - (memcmp(&hid_nkro, &sent_hid_nkro, sizeof(hid_nkro)) != 0)) { - if (tud_hid_n_report(0x02, 0, &sent_hid_nkro, sizeof(sent_hid_nkro))) { - sent_hid_nkro = hid_nkro; - } + if (chu_cfg->hid.nkro) { + if ((memcmp(&hid_nkro, &sent_hid_nkro, sizeof(hid_nkro)) != 0) || + (time_us_64() > next_nkro_time)) { + if (tud_hid_n_report(0x02, 0, &sent_hid_nkro, sizeof(sent_hid_nkro))) { + sent_hid_nkro = hid_nkro; + next_nkro_time = time_us_64() + 2500; // forced report every 4ms + } + } } } }