Add the ability to disable the USB startup check for Chibios
- Added support for NO_USB_STARTUP_CHECK. This allows the keyboard do function and not get stuck in a SUSPENDED state loop in case of no USB connection. - Added support for WAIT_FOR_USB. In LUFA no keyboard has this flag enable therefor no keyboard waits for usb to be active. - Added documentation for both configuration flags as they were missing.
This commit is contained in:
parent
1a907a1627
commit
73a3399d0e
@ -248,3 +248,7 @@ Use these to enable or disable building certain features. The more you have enab
|
|||||||
* Enable Bluetooth with the Adafruit EZ-Key HID
|
* Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
* `SPLIT_KEYBOARD`
|
* `SPLIT_KEYBOARD`
|
||||||
* Enables split keyboard support (dual MCU like the let's split and bakingpy's boards) and includes all necessary files located at quantum/split_common
|
* Enables split keyboard support (dual MCU like the let's split and bakingpy's boards) and includes all necessary files located at quantum/split_common
|
||||||
|
* `WAIT_FOR_USB`
|
||||||
|
* Forces the keyboard to wait for a USB connection to be established before it starts up
|
||||||
|
* `NO_USB_STARTUP_CHECK`
|
||||||
|
* Disables usb suspend check after keyboard startup. Usually the keyboard waits for the host to wake it up before any tasks are performed. This is useful for split keyboards as one half will not get a wakeup call but must send commands to the master.
|
||||||
|
@ -142,10 +142,15 @@ int main(void) {
|
|||||||
|
|
||||||
/* Wait until the USB or serial link is active */
|
/* Wait until the USB or serial link is active */
|
||||||
while (true) {
|
while (true) {
|
||||||
|
#if defined(WAIT_FOR_USB) || defined(SERIAL_LINK_ENABLE)
|
||||||
if(USB_DRIVER.state == USB_ACTIVE) {
|
if(USB_DRIVER.state == USB_ACTIVE) {
|
||||||
driver = &chibios_driver;
|
driver = &chibios_driver;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
driver = &chibios_driver;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
#ifdef SERIAL_LINK_ENABLE
|
#ifdef SERIAL_LINK_ENABLE
|
||||||
if(is_serial_link_connected()) {
|
if(is_serial_link_connected()) {
|
||||||
driver = get_serial_link_driver();
|
driver = get_serial_link_driver();
|
||||||
@ -178,6 +183,7 @@ int main(void) {
|
|||||||
/* Main loop */
|
/* Main loop */
|
||||||
while(true) {
|
while(true) {
|
||||||
|
|
||||||
|
#if !defined(NO_USB_STARTUP_CHECK)
|
||||||
if(USB_DRIVER.state == USB_SUSPENDED) {
|
if(USB_DRIVER.state == USB_SUSPENDED) {
|
||||||
print("[s]");
|
print("[s]");
|
||||||
#ifdef VISUALIZER_ENABLE
|
#ifdef VISUALIZER_ENABLE
|
||||||
@ -205,6 +211,7 @@ int main(void) {
|
|||||||
visualizer_resume();
|
visualizer_resume();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
keyboard_task();
|
keyboard_task();
|
||||||
#ifdef CONSOLE_ENABLE
|
#ifdef CONSOLE_ENABLE
|
||||||
|
Loading…
Reference in New Issue
Block a user