]> git.friedersdorff.com Git - max/tmk_keyboard.git/commitdiff
lufa: usb-usb: Use LUFA startup instead of cusotom
authortmk <hasu@tmk-kbd.com>
Sun, 28 Oct 2018 04:43:59 +0000 (13:43 +0900)
committertmk <hasu@tmk-kbd.com>
Wed, 31 Oct 2018 00:35:30 +0000 (09:35 +0900)
- Change keyboard_init() timing and matrix_scan() is called in USB
  startup wait loop for FC660C
- FC660C startup seems to be faster and it doesn't work without this fix
  when plugin the keyboard and converter at same time

converter/usb_usb/Makefile
converter/usb_usb/main.cpp [deleted file]
converter/usb_usb/usb_usb.cpp
tmk_core/protocol/lufa/lufa.c

index 1f09f87aee0de7aa21d2c48de858519909ec63be..65b6d949511ca0cd8c894464fa8e6aef02e6b44f 100644 (file)
@@ -108,8 +108,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
 #OPT_DEFS += -DNO_ACTION_LAYER
 #OPT_DEFS += -DNO_ACTION_MACRO
 
-SRC ?=  usb_usb.cpp \
-       main.cpp
+SRC ?=  usb_usb.cpp
 
 #
 # Keymap file
diff --git a/converter/usb_usb/main.cpp b/converter/usb_usb/main.cpp
deleted file mode 100644 (file)
index 76e8892..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-#include <avr/io.h>
-#include <avr/wdt.h>
-#include <avr/power.h>
-#include <util/delay.h>
-
-// LUFA
-#include "lufa.h"
-
-#include "sendchar.h"
-#include "debug.h"
-#include "keyboard.h"
-#include "led.h"
-
-
-/* LED ping configuration */
-#define TMK_LED
-//#define LEONARDO_LED
-#if defined(TMK_LED)
-// For TMK converter and Teensy
-#define LED_TX_INIT    (DDRD  |=  (1<<6))
-#define LED_TX_ON      (PORTD |=  (1<<6))
-#define LED_TX_OFF     (PORTD &= ~(1<<6))
-#define LED_TX_TOGGLE  (PORTD ^=  (1<<6))
-#elif defined(LEONARDO_LED)
-// For Leonardo(TX LED)
-#define LED_TX_INIT    (DDRD  |=  (1<<5))
-#define LED_TX_ON      (PORTD &= ~(1<<5))
-#define LED_TX_OFF     (PORTD |=  (1<<5))
-#define LED_TX_TOGGLE  (PORTD ^=  (1<<5))
-#else
-#define LED_TX_INIT
-#define LED_TX_ON
-#define LED_TX_OFF
-#define LED_TX_TOGGLE
-#endif
-
-
-static void LUFA_setup(void)
-{
-    /* Disable watchdog if enabled by bootloader/fuses */
-    MCUSR &= ~(1 << WDRF);
-    wdt_disable();
-
-    /* Disable clock division */
-#if (F_CPU == 8000000)
-    clock_prescale_set(clock_div_2);    // 16MHz crystal divided by 2
-#else
-    clock_prescale_set(clock_div_1);
-#endif
-
-    // Leonardo needs. Without this USB device is not recognized.
-    USB_Disable();
-
-    USB_Init();
-
-    // for Console_Task
-    USB_Device_EnableSOFEvents();
-    print_set_sendchar(sendchar);
-}
-
-
-
-int main(void)
-{
-    // LED for debug
-    LED_TX_INIT;
-    LED_TX_ON;
-
-    debug_enable = true;
-    debug_keyboard = true;
-
-    host_set_driver(&lufa_driver);
-    keyboard_init();
-
-    LUFA_setup();
-
-    /* NOTE: Don't insert time consuming job here.
-     * It'll cause unclear initialization failure when DFU reset(worm start).
-     */
-    sei();
-
-/* Some keyboards bootup quickly and cannot be initialized with this startup wait.
-    // wait for startup of sendchar routine
-    while (USB_DeviceState != DEVICE_STATE_Configured) ;
-    if (debug_enable) {
-        _delay_ms(1000);
-    }
-*/
-
-    debug("init: done\n");
-
-    for (;;) {
-        keyboard_task();
-
-#if !defined(INTERRUPT_CONTROL_ENDPOINT)
-        // LUFA Task for control request
-        USB_USBTask();
-#endif
-    }
-
-    return 0;
-}
index fac513bbf853284839f33120e005159fc5c69cdb..4676584515e3bacf41a876fab432c1173f1ca9a2 100644 (file)
@@ -87,6 +87,7 @@ uint8_t matrix_rows(void) { return MATRIX_ROWS; }
 uint8_t matrix_cols(void) { return MATRIX_COLS; }
 bool matrix_has_ghost(void) { return false; }
 void matrix_init(void) {
+    debug_enable = true;
     // USB Host Shield setup
     usb_host.Init();
     kbd1.SetReportParser(0, (HIDReportParser*)&kbd_parser1);
index a709d1f1b1d7bfa1f3c9561c9fa84635c77be92a..4a42f7894770a9263d4559d4a8e1c9969210d08a 100644 (file)
@@ -643,6 +643,8 @@ int main(void)
 
     sei();
 
+    keyboard_init();
+
     /* wait for USB startup */
     while (USB_DeviceState != DEVICE_STATE_Configured) {
 #if defined(INTERRUPT_CONTROL_ENDPOINT)
@@ -650,10 +652,9 @@ int main(void)
 #else
         USB_USBTask();
 #endif
+        matrix_scan();
     }
 
-    keyboard_init();
-
     hook_late_init();
 
     print("\nKeyboard start.\n");