From c958b2d19b0ec0dbc02f87dc4c9ccee933a54be5 Mon Sep 17 00:00:00 2001 From: tmk Date: Mon, 21 Feb 2011 23:05:28 +0900 Subject: [PATCH] fixed adb_usb to comply new API. --- adb/Makefile | 82 --------------------------------------- adb_usb/Makefile | 52 +++++++++++++++++++++++++ {adb => adb_usb}/README | 0 {adb => adb_usb}/config.h | 14 ++++--- {adb => adb_usb}/keymap.c | 9 +---- adb_usb/led.c | 9 +++++ {adb => adb_usb}/matrix.c | 9 +---- pjrc/usb_keyboard.c | 4 ++ 8 files changed, 76 insertions(+), 103 deletions(-) delete mode 100644 adb/Makefile create mode 100644 adb_usb/Makefile rename {adb => adb_usb}/README (100%) rename {adb => adb_usb}/config.h (84%) rename {adb => adb_usb}/keymap.c (96%) create mode 100644 adb_usb/led.c rename {adb => adb_usb}/matrix.c (94%) diff --git a/adb/Makefile b/adb/Makefile deleted file mode 100644 index c27c75e1..00000000 --- a/adb/Makefile +++ /dev/null @@ -1,82 +0,0 @@ -# Hey Emacs, this is a -*- makefile -*- -#---------------------------------------------------------------------------- -# WinAVR Makefile Template written by Eric B. Weddington, Jörg Wunsch, et al. -# -# Released to the Public Domain -# -# Additional material for this makefile was written by: -# Peter Fleury -# Tim Henigan -# Colin O'Flynn -# Reiner Patommel -# Markus Pfaff -# Sander Pool -# Frederik Rouleau -# Carlos Lamas -# -#---------------------------------------------------------------------------- -# On command line: -# -# make all = Make software. -# -# make clean = Clean out built project files. -# -# make coff = Convert ELF to AVR COFF. -# -# make extcoff = Convert ELF to AVR Extended COFF. -# -# make program = Download the hex file to the device, using avrdude. -# Please customize the avrdude settings below first! -# -# make debug = Start either simulavr or avarice as specified for debugging, -# with avr-gdb or avr-insight as the front end for debugging. -# -# make filename.s = Just compile filename.c into the assembler code only. -# -# make filename.i = Create a preprocessed source file for use in submitting -# bug reports to the GCC project. -# -# To rebuild project do "make clean" then "make all". -#---------------------------------------------------------------------------- - -# Target file name (without extension). -TARGET = tmk_adb - -# Directory common source filess exist -COMMON_DIR = .. - -# Directory keyboard dependent files exist -TARGET_DIR = . - -# keyboard dependent files -TARGET_SRC = keymap.c \ - matrix.c \ - adb.c - - -# 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 -USB_EXTRA_ENABLE = yes # Enhanced feature for Windows(Audio control and System control) -#USB_NKRO_ENABLE = yes # USB Nkey Rollover - - -include $(COMMON_DIR)/Makefile.common diff --git a/adb_usb/Makefile b/adb_usb/Makefile new file mode 100644 index 00000000..61e43a72 --- /dev/null +++ b/adb_usb/Makefile @@ -0,0 +1,52 @@ +# Target file name (without extension). +TARGET = adb_usb + +# Directory common source filess exist +COMMON_DIR = .. + +# Directory keyboard dependent files exist +TARGET_DIR = . + +# keyboard dependent files +TARGET_SRC = main_pjrc.c \ + keymap.c \ + matrix.c \ + led.c \ + adb.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 +USB_EXTRA_ENABLE = yes # Enhanced feature for Windows(Audio control and System control) +#USB_NKRO_ENABLE = yes # USB Nkey Rollover + + + +#---------------- Programming Options -------------------------- +PROGRAM_CMD = teensy_loader_cli.exe -mmcu=$(MCU) -w -v $(TARGET).hex + + + +include $(COMMON_DIR)/Makefile.pjrc +include $(COMMON_DIR)/Makefile.common diff --git a/adb/README b/adb_usb/README similarity index 100% rename from adb/README rename to adb_usb/README diff --git a/adb/config.h b/adb_usb/config.h similarity index 84% rename from adb/config.h rename to adb_usb/config.h index 099a24bf..ea78dd9b 100644 --- a/adb/config.h +++ b/adb_usb/config.h @@ -13,18 +13,21 @@ /* matrix size */ #define MATRIX_ROWS 16 // keycode bit: 3-0 #define MATRIX_COLS 8 // keycode bit: 6-4 -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST -/* USB NKey Rollover */ -#ifdef USB_NKRO_ENABLE -#endif + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (BIT_LSHIFT | BIT_RSHIFT) || \ + keyboard_report->mods == (BIT_LCTRL | BIT_RSHIFT) \ +) + /* mouse keys */ #ifdef MOUSEKEY_ENABLE # define MOUSEKEY_DELAY_TIME 192 #endif + /* PS/2 mouse */ #ifdef PS2_MOUSE_ENABLE # define PS2_CLOCK_PORT PORTF @@ -37,6 +40,7 @@ # define PS2_DATA_BIT 1 #endif + /* ADB port setting */ #define ADB_PORT PORTF #define ADB_PIN PINF diff --git a/adb/keymap.c b/adb_usb/keymap.c similarity index 96% rename from adb/keymap.c rename to adb_usb/keymap.c index 05ab4c45..c5345770 100644 --- a/adb/keymap.c +++ b/adb_usb/keymap.c @@ -9,7 +9,7 @@ #include "print.h" #include "debug.h" #include "util.h" -#include "keymap_skel.h" +#include "keymap.h" #define KEYCODE(layer, row, col) (pgm_read_byte(&keymaps[(layer)][(row)][(col)])) @@ -131,10 +131,3 @@ uint8_t keymap_fn_keycode(uint8_t fn_bits) { return pgm_read_byte(&fn_keycode[(biton(fn_bits))]); } - -// define a condition to enter special function mode -bool keymap_is_special_mode(uint8_t fn_bits) -{ - //return (usb_keyboard_mods == (BIT_LCTRL | BIT_LSHIFT | BIT_LALT | BIT_LGUI)); - return (usb_keyboard_mods == (BIT_RSHIFT)); -} diff --git a/adb_usb/led.c b/adb_usb/led.c new file mode 100644 index 00000000..93009a52 --- /dev/null +++ b/adb_usb/led.c @@ -0,0 +1,9 @@ +#include "stdint.h" +#include "adb.h" +#include "led.h" + + +void led_set(uint8_t usb_led) +{ + adb_host_kbd_led(~usb_led); +} diff --git a/adb/matrix.c b/adb_usb/matrix.c similarity index 94% rename from adb/matrix.c rename to adb_usb/matrix.c index 550506ec..72515dce 100644 --- a/adb/matrix.c +++ b/adb_usb/matrix.c @@ -9,8 +9,7 @@ #include "util.h" #include "debug.h" #include "adb.h" -#include "usb_keyboard.h" -#include "matrix_skel.h" +#include "matrix.h" #if (MATRIX_COLS > 16) @@ -72,12 +71,6 @@ uint8_t matrix_scan(void) uint16_t codes; uint8_t key0, key1; - static uint8_t prev_led = 0; - if (prev_led != usb_keyboard_leds) { - adb_host_kbd_led(~usb_keyboard_leds); - prev_led = usb_keyboard_leds; - } - _matrix_is_modified = false; codes = adb_host_kbd_recv(); key0 = codes>>8; diff --git a/pjrc/usb_keyboard.c b/pjrc/usb_keyboard.c index e29c5c9e..fc05f7c9 100644 --- a/pjrc/usb_keyboard.c +++ b/pjrc/usb_keyboard.c @@ -81,8 +81,12 @@ static inline int8_t send_report(report_keyboard_t *report, uint8_t endpoint, ui UENUM = endpoint; } UEDATX = report->mods; +#ifdef USB_NKRO_ENABLE if (!keyboard_nkro) UEDATX = 0; +#else + UEDATX = 0; +#endif for (uint8_t i = keys_start; i < keys_end; i++) { UEDATX = report->keys[i]; } -- 2.39.3