fixed adb_usb to comply new API.
This commit is contained in:
parent
fb8d23c60c
commit
c958b2d19b
8 changed files with 76 additions and 103 deletions
82
adb/Makefile
82
adb/Makefile
|
@ -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
|
|
52
adb_usb/Makefile
Normal file
52
adb_usb/Makefile
Normal file
|
@ -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
|
|
@ -13,18 +13,21 @@
|
||||||
/* 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
|
/* key combination for command */
|
||||||
#endif
|
#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
|
||||||
|
@ -37,6 +40,7 @@
|
||||||
# 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
|
|
@ -9,7 +9,7 @@
|
||||||
#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)]))
|
||||||
|
@ -131,10 +131,3 @@ uint8_t keymap_fn_keycode(uint8_t fn_bits)
|
||||||
{
|
{
|
||||||
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
adb_usb/led.c
Normal file
9
adb_usb/led.c
Normal file
|
@ -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);
|
||||||
|
}
|
|
@ -9,8 +9,7 @@
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
#include "adb.h"
|
#include "adb.h"
|
||||||
#include "usb_keyboard.h"
|
#include "matrix.h"
|
||||||
#include "matrix_skel.h"
|
|
||||||
|
|
||||||
|
|
||||||
#if (MATRIX_COLS > 16)
|
#if (MATRIX_COLS > 16)
|
||||||
|
@ -72,12 +71,6 @@ uint8_t matrix_scan(void)
|
||||||
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;
|
|
@ -81,8 +81,12 @@ static inline int8_t send_report(report_keyboard_t *report, uint8_t endpoint, ui
|
||||||
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…
Reference in a new issue