1
0
Fork 0

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
This commit is contained in:
Joel Challis 2020-02-05 03:37:04 +00:00 committed by GitHub
parent a557a5b2c5
commit 307be48de9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 34 additions and 14 deletions

View file

@ -276,9 +276,12 @@ There are a few different ways to set handedness for split keyboards (listed in
* Default behavior for ARM * Default behavior for ARM
* Required for AVR Teensy * 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` * 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 # 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. 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.

View file

@ -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. ?> This setting will stop the ability to demo using battery packs.
```c ```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`. 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 ## 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. 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.

View file

@ -20,18 +20,22 @@
#endif #endif
#ifndef SPLIT_USB_TIMEOUT #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 #endif
volatile bool isLeftHand = true; volatile bool isLeftHand = true;
bool waitForUsb(void) { bool waitForUsb(void) {
for (uint8_t i = 0; i < (SPLIT_USB_TIMEOUT / 100); i++) { for (uint8_t i = 0; i < (SPLIT_USB_TIMEOUT / SPLIT_USB_TIMEOUT_POLL); i++) {
// This will return true of a USB connection has been established // This will return true if a USB connection has been established
if (UDADDR & _BV(ADDEN)) { if (UDADDR & _BV(ADDEN)) {
return true; 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 // Avoid NO_USB_STARTUP_CHECK - Disable USB as the previous checks seem to enable it somehow

View file

@ -20,18 +20,22 @@
#endif #endif
#ifndef SPLIT_USB_TIMEOUT #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 #endif
volatile bool isLeftHand = true; volatile bool isLeftHand = true;
bool waitForUsb(void) { bool waitForUsb(void) {
for (uint8_t i = 0; i < (SPLIT_USB_TIMEOUT / 100); i++) { for (uint8_t i = 0; i < (SPLIT_USB_TIMEOUT / SPLIT_USB_TIMEOUT_POLL); i++) {
// This will return true of a USB connection has been established // This will return true if a USB connection has been established
if (UDADDR & _BV(ADDEN)) { if (UDADDR & _BV(ADDEN)) {
return true; 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 // Avoid NO_USB_STARTUP_CHECK - Disable USB as the previous checks seem to enable it somehow

View file

@ -15,14 +15,18 @@
#endif #endif
#ifndef SPLIT_USB_TIMEOUT #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 #endif
volatile bool isLeftHand = true; volatile bool isLeftHand = true;
bool waitForUsb(void) { bool waitForUsb(void) {
for (uint8_t i = 0; i < (SPLIT_USB_TIMEOUT / 100); i++) { for (uint8_t i = 0; i < (SPLIT_USB_TIMEOUT / SPLIT_USB_TIMEOUT_POLL); i++) {
// This will return true of a USB connection has been established // This will return true if a USB connection has been established
#if defined(__AVR__) #if defined(__AVR__)
if (UDADDR & _BV(ADDEN)) { if (UDADDR & _BV(ADDEN)) {
#else #else
@ -30,7 +34,7 @@ bool waitForUsb(void) {
#endif #endif
return true; 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 // Avoid NO_USB_STARTUP_CHECK - Disable USB as the previous checks seem to enable it somehow