diff options
Diffstat (limited to 'tmk_core/protocol')
-rw-r--r-- | tmk_core/protocol/chibios/main.c | 32 | ||||
-rw-r--r-- | tmk_core/protocol/chibios/usb_main.c | 21 |
2 files changed, 31 insertions, 22 deletions
diff --git a/tmk_core/protocol/chibios/main.c b/tmk_core/protocol/chibios/main.c index b0eb9aef81..7138b5535c 100644 --- a/tmk_core/protocol/chibios/main.c +++ b/tmk_core/protocol/chibios/main.c @@ -42,7 +42,7 @@ #include "visualizer/visualizer.h" #endif #include "suspend.h" - +#include "wait.h" /* ------------------------- * TMK host driver defs @@ -70,19 +70,19 @@ host_driver_t chibios_driver = { * Amber LED blinker thread, times are in milliseconds. */ /* set this variable to non-zero anywhere to blink once */ -// uint8_t blinkLed = 0; -// static THD_WORKING_AREA(waBlinkerThread, 128); -// static THD_FUNCTION(blinkerThread, arg) { +// static THD_WORKING_AREA(waThread1, 128); +// static THD_FUNCTION(Thread1, arg) { + // (void)arg; -// chRegSetThreadName("blinkOrange"); -// while(true) { -// if(blinkLed) { -// blinkLed = 0; -// palSetPad(TEENSY_PIN13_IOPORT, TEENSY_PIN13); -// chThdSleepMilliseconds(100); -// palClearPad(TEENSY_PIN13_IOPORT, TEENSY_PIN13); -// } -// chThdSleepMilliseconds(100); +// chRegSetThreadName("blinker"); +// while (true) { +// systime_t time; + +// time = USB_DRIVER.state == USB_ACTIVE ? 250 : 500; +// palClearLine(LINE_CAPS_LOCK); +// chSysPolledDelayX(MS2RTC(STM32_HCLK, time)); +// palSetLine(LINE_CAPS_LOCK); +// chSysPolledDelayX(MS2RTC(STM32_HCLK, time)); // } // } @@ -96,7 +96,7 @@ int main(void) { chSysInit(); // TESTING - // chThdCreateStatic(waBlinkerThread, sizeof(waBlinkerThread), NORMALPRIO, blinkerThread, NULL); + // chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL); /* Init USB */ init_usb_driver(&USB_DRIVER); @@ -128,7 +128,7 @@ int main(void) { } serial_link_update(); #endif - chThdSleepMilliseconds(50); + wait_ms(50); } /* Do need to wait here! @@ -136,7 +136,7 @@ int main(void) { * before the USB is completely ready, which sometimes causes * HardFaults. */ - chThdSleepMilliseconds(50); + wait_ms(50); print("USB configured.\n"); diff --git a/tmk_core/protocol/chibios/usb_main.c b/tmk_core/protocol/chibios/usb_main.c index d0c72c46c7..59edab9bd2 100644 --- a/tmk_core/protocol/chibios/usb_main.c +++ b/tmk_core/protocol/chibios/usb_main.c @@ -27,6 +27,7 @@ #include "sleep_led.h" #include "led.h" #endif +#include "wait.h" #ifdef NKRO_ENABLE #include "keycode_config.h" @@ -39,6 +40,14 @@ * --------------------------------------------------------- */ +#ifndef usb_lld_connect_bus + #define usb_lld_connect_bus(usbp) +#endif + +#ifndef usb_lld_disconnect_bus + #define usb_lld_disconnect_bus(usbp) +#endif + uint8_t keyboard_idle __attribute__((aligned(2))) = 0; uint8_t keyboard_protocol __attribute__((aligned(2))) = 1; uint16_t keyboard_led_stats __attribute__((aligned(2))) = 0; @@ -1017,7 +1026,7 @@ void init_usb_driver(USBDriver *usbp) { * after a reset. */ usbDisconnectBus(usbp); - chThdSleepMilliseconds(1500); + wait_ms(1500); usbStart(usbp, &usbcfg); usbConnectBus(usbp); @@ -1037,16 +1046,16 @@ void send_remote_wakeup(USBDriver *usbp) { #if defined(K20x) || defined(KL2x) #if KINETIS_USB_USE_USB0 USB0->CTL |= USBx_CTL_RESUME; - chThdSleepMilliseconds(15); + wait_ms(15); USB0->CTL &= ~USBx_CTL_RESUME; #endif /* KINETIS_USB_USE_USB0 */ -#elif defined(STM32F0XX) || defined(STM32F1XX) /* K20x || KL2x */ +#elif defined(STM32F0XX) || defined(STM32F1XX) || defined(STM32F3XX) /* End K20x || KL2x */ STM32_USB->CNTR |= CNTR_RESUME; - chThdSleepMilliseconds(15); + wait_ms(15); STM32_USB->CNTR &= ~CNTR_RESUME; -#else /* STM32F0XX || STM32F1XX */ +#else /* End STM32F0XX || STM32F1XX || STM32F3XX */ #warning Sending remote wakeup packet not implemented for your platform. -#endif /* K20x || KL2x */ +#endif } /* --------------------------------------------------------- |