diff options
author | Joel Challis <git@zvecr.com> | 2020-02-05 03:37:04 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-04 19:37:04 -0800 |
commit | 307be48de9a24a182420a6c42222906132035ea2 (patch) | |
tree | 269de1fe60e4f36b5ba1d266060308dc49209df3 | |
parent | a557a5b2c5e62c20e037fbca56dc902a20cd6ff8 (diff) | |
download | qmk_firmware-307be48de9a24a182420a6c42222906132035ea2.tar.gz qmk_firmware-307be48de9a24a182420a6c42222906132035ea2.zip |
Reduce SPLIT_USB_TIMEOUT by 500ms (#7637)
* Update SPLIT_USB_TIMEOUT -500ms
* Align keyboard level SPLIT_USB_TIMEOUT defaults
* Align keyboard level SPLIT_USB_TIMEOUT_POLL
* Review fixes
-rw-r--r-- | docs/config_options.md | 5 | ||||
-rw-r--r-- | docs/feature_split_keyboard.md | 7 | ||||
-rw-r--r-- | keyboards/crkbd/rev1/split_util.c | 12 | ||||
-rw-r--r-- | keyboards/helix/rev2/split_util.c | 12 | ||||
-rw-r--r-- | quantum/split_common/split_util.c | 12 |
5 files changed, 34 insertions, 14 deletions
diff --git a/docs/config_options.md b/docs/config_options.md index 6df0823356..be328405e0 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -276,9 +276,12 @@ There are a few different ways to set handedness for split keyboards (listed in * Default behavior for ARM * Required for AVR Teensy -* `#define SPLIT_USB_TIMEOUT 2500` +* `#define SPLIT_USB_TIMEOUT 2000` * Maximum timeout when detecting master/slave when using `SPLIT_USB_DETECT` +* `#define SPLIT_USB_TIMEOUT_POLL 10` + * Poll frequency when detecting master/slave when using `SPLIT_USB_DETECT` + # The `rules.mk` File This is a [make](https://www.gnu.org/software/make/manual/make.html) file that is included by the top-level `Makefile`. It is used to set some information about the MCU that we will be compiling for as well as enabling and disabling certain features. diff --git a/docs/feature_split_keyboard.md b/docs/feature_split_keyboard.md index affce34293..66194c5f4b 100644 --- a/docs/feature_split_keyboard.md +++ b/docs/feature_split_keyboard.md @@ -198,10 +198,15 @@ This option changes the startup behavior to detect an active USB connection when ?> This setting will stop the ability to demo using battery packs. ```c -#define SPLIT_USB_TIMEOUT 2500 +#define SPLIT_USB_TIMEOUT 2000 ``` This sets the maximum timeout when detecting master/slave when using `SPLIT_USB_DETECT`. +```c +#define SPLIT_USB_TIMEOUT_POLL 10 +``` +This sets the poll frequency when detecting master/slave when using `SPLIT_USB_DETECT` + ## Additional Resources Nicinabox has a [very nice and detailed guide](https://github.com/nicinabox/lets-split-guide) for the Let's Split keyboard, that covers most everything you need to know, including troubleshooting information. diff --git a/keyboards/crkbd/rev1/split_util.c b/keyboards/crkbd/rev1/split_util.c index 35aa54d780..b642a734cc 100644 --- a/keyboards/crkbd/rev1/split_util.c +++ b/keyboards/crkbd/rev1/split_util.c @@ -20,18 +20,22 @@ #endif #ifndef SPLIT_USB_TIMEOUT -# define SPLIT_USB_TIMEOUT 2500 +# define SPLIT_USB_TIMEOUT 2000 +#endif + +#ifndef SPLIT_USB_TIMEOUT_POLL +# define SPLIT_USB_TIMEOUT_POLL 10 #endif volatile bool isLeftHand = true; bool waitForUsb(void) { - for (uint8_t i = 0; i < (SPLIT_USB_TIMEOUT / 100); i++) { - // This will return true of a USB connection has been established + for (uint8_t i = 0; i < (SPLIT_USB_TIMEOUT / SPLIT_USB_TIMEOUT_POLL); i++) { + // This will return true if a USB connection has been established if (UDADDR & _BV(ADDEN)) { return true; } - wait_ms(100); + wait_ms(SPLIT_USB_TIMEOUT_POLL); } // Avoid NO_USB_STARTUP_CHECK - Disable USB as the previous checks seem to enable it somehow diff --git a/keyboards/helix/rev2/split_util.c b/keyboards/helix/rev2/split_util.c index 89df43e277..9d31d0dec3 100644 --- a/keyboards/helix/rev2/split_util.c +++ b/keyboards/helix/rev2/split_util.c @@ -20,18 +20,22 @@ #endif #ifndef SPLIT_USB_TIMEOUT - #define SPLIT_USB_TIMEOUT 2500 +# define SPLIT_USB_TIMEOUT 2000 +#endif + +#ifndef SPLIT_USB_TIMEOUT_POLL +# define SPLIT_USB_TIMEOUT_POLL 10 #endif volatile bool isLeftHand = true; bool waitForUsb(void) { - for (uint8_t i = 0; i < (SPLIT_USB_TIMEOUT / 100); i++) { - // This will return true of a USB connection has been established + for (uint8_t i = 0; i < (SPLIT_USB_TIMEOUT / SPLIT_USB_TIMEOUT_POLL); i++) { + // This will return true if a USB connection has been established if (UDADDR & _BV(ADDEN)) { return true; } - wait_ms(100); + wait_ms(SPLIT_USB_TIMEOUT_POLL); } // Avoid NO_USB_STARTUP_CHECK - Disable USB as the previous checks seem to enable it somehow diff --git a/quantum/split_common/split_util.c b/quantum/split_common/split_util.c index 076f186649..103bc97142 100644 --- a/quantum/split_common/split_util.c +++ b/quantum/split_common/split_util.c @@ -15,14 +15,18 @@ #endif #ifndef SPLIT_USB_TIMEOUT -# define SPLIT_USB_TIMEOUT 2500 +# define SPLIT_USB_TIMEOUT 2000 +#endif + +#ifndef SPLIT_USB_TIMEOUT_POLL +# define SPLIT_USB_TIMEOUT_POLL 10 #endif volatile bool isLeftHand = true; bool waitForUsb(void) { - for (uint8_t i = 0; i < (SPLIT_USB_TIMEOUT / 100); i++) { - // This will return true of a USB connection has been established + for (uint8_t i = 0; i < (SPLIT_USB_TIMEOUT / SPLIT_USB_TIMEOUT_POLL); i++) { + // This will return true if a USB connection has been established #if defined(__AVR__) if (UDADDR & _BV(ADDEN)) { #else @@ -30,7 +34,7 @@ bool waitForUsb(void) { #endif return true; } - wait_ms(100); + wait_ms(SPLIT_USB_TIMEOUT_POLL); } // Avoid NO_USB_STARTUP_CHECK - Disable USB as the previous checks seem to enable it somehow |