Browse Source

fixed adb_usb to comply new API.

tags/v1.9
tmk 13 years ago
parent
commit
c958b2d19b
8 changed files with 76 additions and 103 deletions
  1. 0
    82
      adb/Makefile
  2. 52
    0
      adb_usb/Makefile
  3. 0
    0
      adb_usb/README
  4. 9
    5
      adb_usb/config.h
  5. 1
    8
      adb_usb/keymap.c
  6. 9
    0
      adb_usb/led.c
  7. 1
    8
      adb_usb/matrix.c
  8. 4
    0
      pjrc/usb_keyboard.c

+ 0
- 82
adb/Makefile View File

# 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

+ 52
- 0
adb_usb/Makefile View File

# 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

adb/README → adb_usb/README View File


adb/config.h → adb_usb/config.h View File

/* matrix size */ /* matrix size */
#define MATRIX_ROWS 16 // keycode bit: 3-0 #define MATRIX_ROWS 16 // keycode bit: 3-0
#define MATRIX_COLS 8 // keycode bit: 6-4 #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 */ /* mouse keys */
#ifdef MOUSEKEY_ENABLE #ifdef MOUSEKEY_ENABLE
# define MOUSEKEY_DELAY_TIME 192 # define MOUSEKEY_DELAY_TIME 192
#endif #endif



/* PS/2 mouse */ /* PS/2 mouse */
#ifdef PS2_MOUSE_ENABLE #ifdef PS2_MOUSE_ENABLE
# define PS2_CLOCK_PORT PORTF # define PS2_CLOCK_PORT PORTF
# define PS2_DATA_BIT 1 # define PS2_DATA_BIT 1
#endif #endif



/* ADB port setting */ /* ADB port setting */
#define ADB_PORT PORTF #define ADB_PORT PORTF
#define ADB_PIN PINF #define ADB_PIN PINF

adb/keymap.c → adb_usb/keymap.c View File

#include "print.h" #include "print.h"
#include "debug.h" #include "debug.h"
#include "util.h" #include "util.h"
#include "keymap_skel.h"
#include "keymap.h"




#define KEYCODE(layer, row, col) (pgm_read_byte(&keymaps[(layer)][(row)][(col)])) #define KEYCODE(layer, row, col) (pgm_read_byte(&keymaps[(layer)][(row)][(col)]))
{ {
return pgm_read_byte(&fn_keycode[(biton(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));
}

+ 9
- 0
adb_usb/led.c View File

#include "stdint.h"
#include "adb.h"
#include "led.h"


void led_set(uint8_t usb_led)
{
adb_host_kbd_led(~usb_led);
}

adb/matrix.c → adb_usb/matrix.c View File

#include "util.h" #include "util.h"
#include "debug.h" #include "debug.h"
#include "adb.h" #include "adb.h"
#include "usb_keyboard.h"
#include "matrix_skel.h"
#include "matrix.h"




#if (MATRIX_COLS > 16) #if (MATRIX_COLS > 16)
uint16_t codes; uint16_t codes;
uint8_t key0, key1; 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; _matrix_is_modified = false;
codes = adb_host_kbd_recv(); codes = adb_host_kbd_recv();
key0 = codes>>8; key0 = codes>>8;

+ 4
- 0
pjrc/usb_keyboard.c View File

UENUM = endpoint; UENUM = endpoint;
} }
UEDATX = report->mods; UEDATX = report->mods;
#ifdef USB_NKRO_ENABLE
if (!keyboard_nkro) if (!keyboard_nkro)
UEDATX = 0; UEDATX = 0;
#else
UEDATX = 0;
#endif
for (uint8_t i = keys_start; i < keys_end; i++) { for (uint8_t i = keys_start; i < keys_end; i++) {
UEDATX = report->keys[i]; UEDATX = report->keys[i];
} }

Loading…
Cancel
Save