@@ -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 |
@@ -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 */ | |||
#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 |
@@ -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)); | |||
} |
@@ -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 "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; |
@@ -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]; | |||
} |