From c5060ea81942b0e3f8577536ff78402a19abe3d3 Mon Sep 17 00:00:00 2001 From: tmk Date: Sat, 25 Aug 2012 15:49:08 +0900 Subject: test build of 'Host shield' in minimal env. --- common/timer.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'common/timer.h') diff --git a/common/timer.h b/common/timer.h index f9e8181e6..d24d3eab6 100644 --- a/common/timer.h +++ b/common/timer.h @@ -23,10 +23,12 @@ along with this program. If not, see . #ifndef TIMER_PRESCALER # if F_CPU > 16000000 # define TIMER_PRESCALER 256 -# elif F_CPU >= 4000000 +# elif F_CPU > 2000000 # define TIMER_PRESCALER 64 -# else +# elif F_CPU > 250000 # define TIMER_PRESCALER 8 +# else +# define TIMER_PRESCALER 1 # endif #endif #define TIMER_RAW_FREQ (F_CPU/TIMER_PRESCALER) @@ -42,6 +44,9 @@ along with this program. If not, see . #define TIMER_DIFF_MS(a, b) TIMER_DIFF(a, b, UINT16_MAX) +#ifdef __cplusplus +extern "C" { +#endif extern volatile uint16_t timer_count; @@ -49,5 +54,8 @@ void timer_init(void); void timer_clear(void); uint16_t timer_read(void); uint16_t timer_elapsed(uint16_t last); +#ifdef __cplusplus +} +#endif #endif -- cgit v1.2.3-70-g09d2 From c77c5043a121f195b3a552feb8283424a0652ce2 Mon Sep 17 00:00:00 2001 From: tmk Date: Sun, 2 Sep 2012 23:47:18 +0900 Subject: usb_hid: Fix timer size uint16_t to uint32_t; --- common/debug.c | 9 +++++++++ common/timer.c | 34 ++++++++++++++++++++++++++++++---- common/timer.h | 9 ++++++--- protocol/pjrc/main.c | 6 ------ protocol/usb_hid/README | 8 ++++++++ protocol/usb_hid/override_wiring.c | 4 ++-- protocol/usb_hid/parser.cpp | 3 +-- protocol/usb_hid/usb_hid.h | 10 ++++++++++ 8 files changed, 66 insertions(+), 17 deletions(-) create mode 100644 common/debug.c create mode 100644 protocol/usb_hid/usb_hid.h (limited to 'common/timer.h') diff --git a/common/debug.c b/common/debug.c new file mode 100644 index 000000000..41d566ee3 --- /dev/null +++ b/common/debug.c @@ -0,0 +1,9 @@ +#include +#include "debug.h" + + +bool debug_enable = false; +bool debug_matrix = false; +bool debug_keyboard = false; +bool debug_mouse = false; + diff --git a/common/timer.c b/common/timer.c index 48a38c9b6..8b8d37e8b 100644 --- a/common/timer.c +++ b/common/timer.c @@ -22,7 +22,7 @@ along with this program. If not, see . // counter resolution 1ms -volatile uint16_t timer_count = 0; +volatile uint32_t timer_count = 0; void timer_init(void) { @@ -59,7 +59,20 @@ void timer_clear(void) inline uint16_t timer_read(void) { - uint16_t t; + uint32_t t; + + uint8_t sreg = SREG; + cli(); + t = timer_count; + SREG = sreg; + + return (t & 0xFFFF); +} + +inline +uint32_t timer_read32(void) +{ + uint32_t t; uint8_t sreg = SREG; cli(); @@ -72,14 +85,27 @@ uint16_t timer_read(void) inline uint16_t timer_elapsed(uint16_t last) { - uint16_t t; + uint32_t t; + + uint8_t sreg = SREG; + cli(); + t = timer_count; + SREG = sreg; + + return TIMER_DIFF_16((t & 0xFFFF), last); +} + +inline +uint32_t timer_elapsed32(uint32_t last) +{ + uint32_t t; uint8_t sreg = SREG; cli(); t = timer_count; SREG = sreg; - return TIMER_DIFF_MS(t, last); + return TIMER_DIFF_32(t, last); } // excecuted once per 1ms.(excess for just timer count?) diff --git a/common/timer.h b/common/timer.h index d24d3eab6..70b008e6c 100644 --- a/common/timer.h +++ b/common/timer.h @@ -40,20 +40,23 @@ along with this program. If not, see . #endif #define TIMER_DIFF(a, b, max) ((a) >= (b) ? (a) - (b) : (max) - (b) + (a)) -#define TIMER_DIFF_RAW(a, b) TIMER_DIFF(a, b, UINT8_MAX) -#define TIMER_DIFF_MS(a, b) TIMER_DIFF(a, b, UINT16_MAX) +#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) #ifdef __cplusplus extern "C" { #endif -extern volatile uint16_t timer_count; +extern volatile uint32_t timer_count; void timer_init(void); void timer_clear(void); 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 diff --git a/protocol/pjrc/main.c b/protocol/pjrc/main.c index 15f14920b..0b0a44028 100644 --- a/protocol/pjrc/main.c +++ b/protocol/pjrc/main.c @@ -42,12 +42,6 @@ #define CPU_PRESCALE(n) (CLKPR = 0x80, CLKPR = (n)) -bool debug_enable = false; -bool debug_matrix = false; -bool debug_keyboard = false; -bool debug_mouse = false; - - int main(void) { DEBUG_LED_CONFIG; diff --git a/protocol/usb_hid/README b/protocol/usb_hid/README index 9750a1cc8..5d49cc8d2 100644 --- a/protocol/usb_hid/README +++ b/protocol/usb_hid/README @@ -26,3 +26,11 @@ You can see HID keyboard reports on debug output. Restriction and Bug ------------------- Not statble yet. + +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. + MAX3421E doesn't work SAMPLEBUS well to know whether device connected or not. + +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. diff --git a/protocol/usb_hid/override_wiring.c b/protocol/usb_hid/override_wiring.c index a8c28dd89..3b3f5e302 100644 --- a/protocol/usb_hid/override_wiring.c +++ b/protocol/usb_hid/override_wiring.c @@ -8,11 +8,11 @@ unsigned long millis() { - return timer_read(); + return timer_read32(); } unsigned long micros() { - return timer_read() * 1000UL; + return timer_read32() * 1000UL; } void delay(unsigned long ms) { diff --git a/protocol/usb_hid/parser.cpp b/protocol/usb_hid/parser.cpp index 4077444b7..66e949518 100644 --- a/protocol/usb_hid/parser.cpp +++ b/protocol/usb_hid/parser.cpp @@ -3,7 +3,6 @@ #include "parser.h" #include "usb_hid.h" -#include "leonardo_led.h" #include "debug.h" @@ -16,9 +15,9 @@ void KBDReportParser::Parse(HID *hid, bool is_rpt_id, uint8_t len, uint8_t *buf) ::memcpy(&usb_hid_keyboard_report, buf, sizeof(report_keyboard_t)); usb_hid_time_stamp = millis(); - LED_TX_TOGGLE; debug("KBDReport: "); debug_hex(usb_hid_keyboard_report.mods); + debug(" --"); for (uint8_t i = 0; i < 6; i++) { debug(" "); debug_hex(usb_hid_keyboard_report.keys[i]); diff --git a/protocol/usb_hid/usb_hid.h b/protocol/usb_hid/usb_hid.h new file mode 100644 index 000000000..083b68d1f --- /dev/null +++ b/protocol/usb_hid/usb_hid.h @@ -0,0 +1,10 @@ +#ifndef USB_HID_H +#define USB_HID_H + +#include "report.h" + + +extern report_keyboard_t usb_hid_keyboard_report; +extern uint16_t usb_hid_time_stamp; + +#endif -- cgit v1.2.3-70-g09d2 From 232ab308e358e41f3253d66fa009c1ebca0951a2 Mon Sep 17 00:00:00 2001 From: tmk Date: Tue, 4 Sep 2012 13:29:21 +0900 Subject: usb_hid: workaround for compile on Windows. --- common/timer.h | 3 +++ converter/usb_usb/Makefile | 1 - converter/usb_usb/keymap.c | 40 ++++++++++++++++---------------- converter/usb_usb/main.cpp | 14 +++++++++++- keyboard/hbkb/Makefile.pjrc | 56 --------------------------------------------- protocol/usb_hid.mk | 6 +++++ protocol/usb_hid/README | 10 ++++++++ 7 files changed, 52 insertions(+), 78 deletions(-) delete mode 100644 keyboard/hbkb/Makefile.pjrc mode change 100644 => 100755 protocol/usb_hid/README (limited to 'common/timer.h') diff --git a/common/timer.h b/common/timer.h index 70b008e6c..6437473ff 100644 --- a/common/timer.h +++ b/common/timer.h @@ -43,11 +43,13 @@ along with this program. If not, see . #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 diff --git a/converter/usb_usb/Makefile b/converter/usb_usb/Makefile index 4565ca508..41a64e464 100644 --- a/converter/usb_usb/Makefile +++ b/converter/usb_usb/Makefile @@ -116,7 +116,6 @@ CONFIG_H = config.h # Search Path VPATH += $(TARGET_DIR) VPATH += $(TOP_DIR) -#VPATH += $(TOP_DIR)/common diff --git a/converter/usb_usb/keymap.c b/converter/usb_usb/keymap.c index 406197450..8399f606e 100644 --- a/converter/usb_usb/keymap.c +++ b/converter/usb_usb/keymap.c @@ -65,7 +65,7 @@ along with this program. If not, see . // 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 ), }; diff --git a/converter/usb_usb/main.cpp b/converter/usb_usb/main.cpp index 00d2d59b6..04d838f57 100644 --- a/converter/usb_usb/main.cpp +++ b/converter/usb_usb/main.cpp @@ -2,7 +2,6 @@ #include #include #include -#include // 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 index 159f56b44..000000000 --- a/keyboard/hbkb/Makefile.pjrc +++ /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 diff --git a/protocol/usb_hid.mk b/protocol/usb_hid.mk index f3149f7f4..fb4916d56 100644 --- a/protocol/usb_hid.mk +++ b/protocol/usb_hid.mk @@ -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) diff --git a/protocol/usb_hid/README b/protocol/usb_hid/README old mode 100644 new mode 100755 index 5d49cc8d2..1357a4c72 --- a/protocol/usb_hid/README +++ b/protocol/usb_hid/README @@ -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 ? -- cgit v1.2.3-70-g09d2