]> git.donarmstrong.com Git - tmk_firmware.git/commitdiff
usb_hid: workaround for compile on Windows.
authortmk <nobody@nowhere>
Tue, 4 Sep 2012 04:29:21 +0000 (13:29 +0900)
committertmk <nobody@nowhere>
Tue, 4 Sep 2012 04:29:21 +0000 (13:29 +0900)
common/timer.h
converter/usb_usb/Makefile
converter/usb_usb/keymap.c
converter/usb_usb/main.cpp
keyboard/hbkb/Makefile.pjrc [deleted file]
protocol/usb_hid.mk
protocol/usb_hid/README [changed mode: 0644->0755]

index 70b008e6c98e38a7c04e8c1f9db6c5695fdb9052..6437473ff772051ab3f5208bbb319e43d493b9f2 100644 (file)
@@ -43,11 +43,13 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define TIMER_DIFF_8(a, b)      TIMER_DIFF(a, b, UINT8_MAX)
 #define TIMER_DIFF_16(a, b)     TIMER_DIFF(a, b, UINT16_MAX)
 #define TIMER_DIFF_32(a, b)     TIMER_DIFF(a, b, UINT32_MAX)
+#define TIMER_DIFF_RAW(a, b)    TIMER_DIFF_8(a, b)
 
 
 #ifdef __cplusplus
 extern "C" {
 #endif
+
 extern volatile uint32_t timer_count;
 
 
@@ -57,6 +59,7 @@ uint16_t timer_read(void);
 uint32_t timer_read32(void);
 uint16_t timer_elapsed(uint16_t last);
 uint32_t timer_elapsed32(uint32_t last);
+
 #ifdef __cplusplus
 }
 #endif
index 4565ca508a95aefa256b2e86c2d624cf63f52515..41a64e46433e0ea96fc9bd5b3ff961f8e65636a4 100644 (file)
@@ -116,7 +116,6 @@ CONFIG_H = config.h
 # Search Path
 VPATH += $(TARGET_DIR)
 VPATH += $(TOP_DIR)
-#VPATH += $(TOP_DIR)/common
 
 
 
index 40619745046f771deb84da7fff9ebc0bc0514d17..8399f606e064531841169d77211db2080b82ee93 100644 (file)
@@ -65,7 +65,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 
 // Layers to switch by holding Fn key(0-7)
-static const uint8_t PROGMEM fn_layer[] =   { 5,       6,       0,       0,       0,       0,       0,       0     };
+static const uint8_t PROGMEM fn_layer[] =   { 5,       6,       5,       0,       0,       0,       0,       0     };
 
 // Codes to register by clicking Fn key(0-7)
 static const uint8_t PROGMEM fn_keycode[] = { KB_SCLN, KB_SLSH, KB_NO,   KB_NO,   KB_NO,   KB_NO,   KB_NO,   KB_NO };
@@ -90,12 +90,12 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
      * / = Fn1(to Layer 6)
      */
     KEYMAP(
-    ESC, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12,           PSCR,SLCK,BRK,
-    GRV, 1,   2,   3,   4,   5,   6,   7,   8,   9,   0,   MINS,EQL, BSPC,     INS, HOME,PGUP,    NLCK,PSLS,PAST,PMNS,
+    ESC, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12,           PSCR,SLCK,PAUS,
+    ESC, 1,   2,   3,   4,   5,   6,   7,   8,   9,   0,   MINS,EQL, BSPC,     INS, HOME,PGUP,    NLCK,PSLS,PAST,PMNS,
     TAB, Q,   W,   E,   R,   T,   Y,   U,   I,   O,   P,   LBRC,RBRC,BSLS,     DEL, END, PGDN,    P7,  P8,  P9,
-    CAPS,A,   S,   D,   F,   G,   H,   J,   K,   L,   FN0, QUOT,     ENT,                         P4,  P5,  P6,  PPLS,
+    LCTL,A,   S,   D,   F,   G,   H,   J,   K,   L,   FN0, QUOT,     ENT,                         P4,  P5,  P6,  PPLS,
     LSFT,Z,   X,   C,   V,   B,   N,   M,   COMM,DOT, FN1,           RSFT,          UP,           P1,  P2,  P3,
-    LCTL,LGUI,LALT,          SPC,                     RALT,RGUI,APP, RCTL,     LEFT,DOWN,RGHT,    P0,       PDOT,PENT
+    FN2, LGUI,LALT,          SPC,                     RALT,FN2, FN2, GRV,      LEFT,DOWN,RGHT,    P0,       PDOT,PENT
     ),
 
     /* 1: plain Qwerty without layer switching
@@ -112,7 +112,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
      * `-----------------------------------------------------------'
      */
     KEYMAP(
-    ESC, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12,           PSCR,SLCK,BRK,
+    ESC, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12,           PSCR,SLCK,PAUS,
     GRV, 1,   2,   3,   4,   5,   6,   7,   8,   9,   0,   MINS,EQL, BSPC,     INS, HOME,PGUP,    NLCK,PSLS,PAST,PMNS,
     TAB, Q,   W,   E,   R,   T,   Y,   U,   I,   O,   P,   LBRC,RBRC,BSLS,     DEL, END, PGDN,    P7,  P8,  P9,
     CAPS,A,   S,   D,   F,   G,   H,   J,   K,   L,   SCLN,QUOT,     ENT,                         P4,  P5,  P6,  PPLS,
@@ -134,7 +134,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
      * `----------------------------------------------------------'
      */
     KEYMAP(
-    ESC, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12,           PSCR,SLCK,BRK,
+    ESC, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12,           PSCR,SLCK,PAUS,
     GRV, 1,   2,   3,   4,   5,   6,   7,   8,   9,   0,   MINS,EQL, BSPC,     INS, HOME,PGUP,    NLCK,PSLS,PAST,PMNS,
     TAB, Q,   W,   F,   P,   G,   J,   L,   U,   Y,   SCLN,LBRC,RBRC,BSLS,     DEL, END, PGDN,    P7,  P8,  P9,
     BSPC,A,   R,   S,   T,   D,   H,   N,   E,   I,   O,   QUOT,     ENT,                         P4,  P5,  P6,  PPLS,
@@ -156,7 +156,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
      * `-----------------------------------------------------------'
      */
     KEYMAP(
-    ESC, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12,           PSCR,SLCK,BRK,
+    ESC, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12,           PSCR,SLCK,PAUS,
     GRV, 1,   2,   3,   4,   5,   6,   7,   8,   9,   0,   LBRC,RBRC,BSPC,     INS, HOME,PGUP,    NLCK,PSLS,PAST,PMNS,
     TAB, QUOT,COMM,DOT, P,   Y,   F,   G,   C,   R,   L,   SLSH,EQL, BSLS,     DEL, END, PGDN,    P7,  P8,  P9,
     CAPS,A,   O,   E,   U,   I,   D,   H,   T,   N,   S,   MINS,     ENT,                         P4,  P5,  P6,  PPLS,
@@ -178,7 +178,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
      * `-----------------------------------------------------------'
      */
     KEYMAP(
-    ESC, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12,           PSCR,SLCK,BRK,
+    ESC, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12,           PSCR,SLCK,PAUS,
     GRV, 1,   2,   3,   4,   5,   6,   7,   8,   9,   0,   MINS,EQL, BSPC,     INS, HOME,PGUP,    NLCK,PSLS,PAST,PMNS,
     TAB, Q,   D,   R,   W,   B,   J,   F,   U,   P,   SCLN,LBRC,RBRC,BSLS,     DEL, END, PGDN,    P7,  P8,  P9,
     BSPC,A,   S,   H,   T,   G,   Y,   N,   E,   O,   I,   QUOT,     ENT,                         P4,  P5,  P6,  PPLS,
@@ -202,12 +202,12 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
      * Vo = Volume, Mut = Mute
      */
     KEYMAP(
-    ESC, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12,           PSCR,SLCK,BRK,
-    ESC, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F8,  F10, F11, F12, BSPC,     INS, HOME,PGUP,    NLCK,PSLS,PAST,PMNS,
-    TAB, WH_L,WH_D,MS_U,WH_U,WH_R,WH_L,WH_D,WH_U,WH_R,NO,  NO,  NO,  BSLS,     DEL, END, PGDN,    P7,  P8,  P9,
-    CAPS,NO,  MS_L,MS_D,MS_R,NO,  MS_L,MS_D,MS_U,MS_R,FN0, NO,       ENT,                         P4,  P5,  P6,  PPLS,
-    LSFT,VOLD,VOLU,MUTE,BTN2,BTN3,BTN2,BTN1,VOLD,VOLU,MUTE,          RSFT,          UP,           P1,  P2,  P3,
-    LCTL,LGUI,LALT,          BTN1,                    RALT,RGUI,APP, RCTL,     LEFT,DOWN,RGHT,    P0,       PDOT,PENT
+    ESC, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12,           PSCR,SLCK,PAUS,
+    GRV, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F8,  F10, F11, F12, DEL,      INS, HOME,PGUP,    NLCK,PSLS,PAST,PMNS,
+    CAPS,NO,  NO,  NO,  NO,  NO,  WH_L,WH_D,WH_U,WH_R,PSCR,SLCK,PAUS,INS,      DEL, END, PGDN,    P7,  P8,  P9,
+    LCTL,VOLD,VOLU,MUTE,NO,  NO,  MS_L,MS_D,MS_U,MS_R,FN0, NO,       ENT,                         P4,  P5,  P6,  PPLS,
+    LSFT,NO,  NO,  NO,  NO,  BTN3,BTN2,BTN1,NO,  NO,  NO,            RSFT,          UP,           P1,  P2,  P3,
+    FN2, LGUI,LALT,          BTN1,                    RALT,FN2, FN2, RCTL,     LEFT,DOWN,RGHT,    P0,       PDOT,PENT
     ),
 
     /* 6: Cursor keys
@@ -224,11 +224,11 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
      * `-----------------------------------------------------------'
      */
     KEYMAP(
-    ESC, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12,           PSCR,SLCK,BRK,
-    ESC, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F8,  F10, F11, F12, BSPC,     INS, HOME,PGUP,    NLCK,PSLS,PAST,PMNS,
-    TAB, NO,  NO,  NO,  NO,  NO,  HOME,PGDN,PGUP,END, NO,  NO,  NO,  BSLS,     DEL, END, PGDN,    P7,  P8,  P9,
-    CAPS,NO,  NO,  NO,  NO,  NO,  LEFT,DOWN,UP,  RGHT,NO,  NO,       ENT,                         P4,  P5,  P6,  PPLS,
-    LSFT,VOLD,VOLU,MUTE,NO,  NO,  HOME,PGDN,PGUP,END, FN1,           RSFT,          UP,           P1,  P2,  P3,
+    ESC, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12,           PSCR,SLCK,PAUS,
+    GRV, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F8,  F10, F11, F12, DEL,      INS, HOME,PGUP,    NLCK,PSLS,PAST,PMNS,
+    CAPS,NO,  NO,  NO,  NO,  NO,  HOME,PGDN,PGUP,END, NO,  NO,  NO,  INS,      DEL, END, PGDN,    P7,  P8,  P9,
+    LCTL,NO,  NO,  NO,  NO,  NO,  LEFT,DOWN,UP,  RGHT,NO,  NO,       ENT,                         P4,  P5,  P6,  PPLS,
+    LSFT,NO,  NO,  NO,  NO,  NO,  HOME,PGDN,PGUP,END, FN1,           RSFT,          UP,           P1,  P2,  P3,
     LCTL,LGUI,LALT,          SPC,                     RALT,RGUI,APP, RCTL,     LEFT,DOWN,RGHT,    P0,       PDOT,PENT
     ),
 };
index 00d2d59b6a4903a2a35a3ae61b6c7280802576fc..04d838f57f1e74770a96dba15c8e7b2ad3077210 100644 (file)
@@ -2,7 +2,6 @@
 #include <avr/wdt.h>
 #include <avr/power.h>
 #include <util/delay.h>
-#include <Arduino.h>
 
 // USB HID host
 #include "Usb.h"
@@ -13,6 +12,7 @@
 // LUFA
 #include "lufa.h"
 
+#include "timer.h"
 #include "debug.h"
 #include "keyboard.h"
 
@@ -71,19 +71,31 @@ int main(void)
     LUFA_setup();
     sei();
 
+uint8_t ret;
     // wait for startup of sendchar routine
     while (USB_DeviceState != DEVICE_STATE_Configured) ;
     if (debug_enable) {
         _delay_ms(1000);
     }
 
+    debug("init: start\n");
     HID_setup();
     
     debug("init: done\n");
+
+uint16_t timer;
+// to see loop pulse with oscillo scope
+DDRF = (1<<7);
     for (;;) {
+PORTF ^= (1<<7);
         keyboard_proc();
 
+timer = timer_read();
         usb_host.Task();
+timer = timer_elapsed(timer);
+if (timer > 100) {
+    debug("host.Task: "); debug_hex16(timer);  debug("\n");
+}
 
 #if !defined(INTERRUPT_CONTROL_ENDPOINT)
         // LUFA Task for control request
diff --git a/keyboard/hbkb/Makefile.pjrc b/keyboard/hbkb/Makefile.pjrc
deleted file mode 100644 (file)
index 159f56b..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-# Target file name (without extension).
-TARGET = hbkb
-
-# Directory common source filess exist
-TOP_DIR = ../..
-
-# Directory keyboard dependent files exist
-TARGET_DIR = .
-
-# keyboard dependent files
-SRC =  main.c \
-       keymap.c \
-       matrix.c \
-       led.c
-
-CONFIG_H = config.h
-
-
-# MCU name, you MUST set this to match the board you are using
-# type "make clean" after changing this, so all files will be rebuilt
-#MCU = at90usb162       # Teensy 1.0
-MCU = atmega32u4       # Teensy 2.0
-#MCU = at90usb646       # Teensy++ 1.0
-#MCU = at90usb1286      # Teensy++ 2.0
-
-
-# Processor frequency.
-#   Normally the first thing your program should do is set the clock prescaler,
-#   so your program will run at the correct speed.  You should also set this
-#   variable to same clock speed.  The _delay_ms() macro uses this, and many
-#   examples use this variable to calculate timings.  Do not add a "UL" here.
-F_CPU = 16000000
-
-
-# Build Options
-#   comment out to disable the options.
-#
-MOUSEKEY_ENABLE = yes  # Mouse keys
-#PS2_MOUSE_ENABLE = yes        # PS/2 mouse(TrackPoint) support
-EXTRAKEY_ENABLE = yes  # Audio control and System control
-#NKRO_ENABLE = yes     # USB Nkey Rollover
-
-
-
-#---------------- Programming Options --------------------------
-#PROGRAM_CMD = teensy_loader_cli -mmcu=$(MCU) -w -v $(TARGET).hex
-PROGRAM_CMD = /opt/dfu-programmer-0.5.2/bin/dfu-programmer $(MCU) erase && \
-             /opt/dfu-programmer-0.5.2/bin/dfu-programmer $(MCU) flash $(TARGET).hex && \
-             /opt/dfu-programmer-0.5.2/bin/dfu-programmer $(MCU) start
-
-
-
-include $(TOP_DIR)/protocol/pjrc.mk
-include $(TOP_DIR)/protocol.mk
-include $(TOP_DIR)/common.mk
-include $(TOP_DIR)/rules.mk
index f3149f7f4bced040778ac00bfba8501f358db359..fb4916d56277d23a0d3c39b5696651551a66330a 100644 (file)
@@ -65,3 +65,9 @@ VPATH += $(TOP_DIR)/$(ARDUINO_CORES_DIR)
 
 # for #include "pins_arduino.h"
 VPATH += $(TOP_DIR)/$(ARDUINO_DIR)/variants/leonardo
+
+# ad hoc workaround for compile problem on Windows:
+#    Windows doesn't know difference between common/print.h and arduino/Print.h.
+#    On Linux no problem.
+#    Change file name common/print.h to console.h ?
+VPATH := $(TOP_DIR)/common $(VPATH)
old mode 100644 (file)
new mode 100755 (executable)
index 5d49cc8..1357a4c
@@ -27,6 +27,11 @@ Restriction and Bug
 -------------------
 Not statble yet.
 
+Switching power on VBUS:
+    To power reset device.
+    http://www.circuitsathome.com/camera-control/simulating-cable-disconnect-on-usb-host-shield-2-0
+    This is needed for a device which are not initilized with 'USB Bus Reset'(long SE0)
+
 Can't bus-reset a keyboard which already attached on bus properly.
     Slow start up of Leonardo's bootloader causes this?
     Need to unplug/plug a keyboard after firmware starts up.
@@ -34,3 +39,8 @@ Can't bus-reset a keyboard which already attached on bus properly.
 
 Keyboard with other endpoints than boot keyboard may go wrong.
     On my keyboard with mouse key the converter locks up when using mouse key function.
+
+Can't compile on Windows filesystem.
+    On Linux no problem.
+    Windows doesn't know difference between common/print.h and arduino/Print.h.
+    Change file name common/print.h to console.h ?