diff options
Diffstat (limited to 'keyboard/hhkb')
| -rw-r--r-- | keyboard/hhkb/Makefile.lufa | 119 | ||||
| -rw-r--r-- | keyboard/hhkb/Makefile.pjrc | 7 | ||||
| -rw-r--r-- | keyboard/hhkb/config.h (renamed from keyboard/hhkb/config_pjrc.h) | 5 | ||||
| -rw-r--r-- | keyboard/hhkb/matrix.c | 10 |
4 files changed, 133 insertions, 8 deletions
diff --git a/keyboard/hhkb/Makefile.lufa b/keyboard/hhkb/Makefile.lufa new file mode 100644 index 000000000..cdd68f40a --- /dev/null +++ b/keyboard/hhkb/Makefile.lufa | |||
| @@ -0,0 +1,119 @@ | |||
| 1 | #---------------------------------------------------------------------------- | ||
| 2 | # On command line: | ||
| 3 | # | ||
| 4 | # make all = Make software. | ||
| 5 | # | ||
| 6 | # make clean = Clean out built project files. | ||
| 7 | # | ||
| 8 | # make coff = Convert ELF to AVR COFF. | ||
| 9 | # | ||
| 10 | # make extcoff = Convert ELF to AVR Extended COFF. | ||
| 11 | # | ||
| 12 | # make program = Download the hex file to the device. | ||
| 13 | # Please customize your programmer settings(PROGRAM_CMD) | ||
| 14 | # | ||
| 15 | # make teensy = Download the hex file to the device, using teensy_loader_cli. | ||
| 16 | # (must have teensy_loader_cli installed). | ||
| 17 | # | ||
| 18 | # make dfu = Download the hex file to the device, using dfu-programmer (must | ||
| 19 | # have dfu-programmer installed). | ||
| 20 | # | ||
| 21 | # make flip = Download the hex file to the device, using Atmel FLIP (must | ||
| 22 | # have Atmel FLIP installed). | ||
| 23 | # | ||
| 24 | # make dfu-ee = Download the eeprom file to the device, using dfu-programmer | ||
| 25 | # (must have dfu-programmer installed). | ||
| 26 | # | ||
| 27 | # make flip-ee = Download the eeprom file to the device, using Atmel FLIP | ||
| 28 | # (must have Atmel FLIP installed). | ||
| 29 | # | ||
| 30 | # make debug = Start either simulavr or avarice as specified for debugging, | ||
| 31 | # with avr-gdb or avr-insight as the front end for debugging. | ||
| 32 | # | ||
| 33 | # make filename.s = Just compile filename.c into the assembler code only. | ||
| 34 | # | ||
| 35 | # make filename.i = Create a preprocessed source file for use in submitting | ||
| 36 | # bug reports to the GCC project. | ||
| 37 | # | ||
| 38 | # To rebuild project do "make clean" then "make all". | ||
| 39 | #---------------------------------------------------------------------------- | ||
| 40 | |||
| 41 | # Target file name (without extension). | ||
| 42 | TARGET = hhkb_lufa | ||
| 43 | |||
| 44 | # Directory common source filess exist | ||
| 45 | TOP_DIR = ../.. | ||
| 46 | |||
| 47 | # Directory keyboard dependent files exist | ||
| 48 | TARGET_DIR = . | ||
| 49 | |||
| 50 | |||
| 51 | # List C source files here. (C dependencies are automatically generated.) | ||
| 52 | SRC += keymap.c \ | ||
| 53 | matrix.c \ | ||
| 54 | led.c | ||
| 55 | |||
| 56 | CONFIG_H = config.h | ||
| 57 | |||
| 58 | |||
| 59 | # MCU name | ||
| 60 | MCU = at90usb1286 | ||
| 61 | #MCU = atmega32u4 | ||
| 62 | |||
| 63 | # Processor frequency. | ||
| 64 | # This will define a symbol, F_CPU, in all source code files equal to the | ||
| 65 | # processor frequency in Hz. You can then use this symbol in your source code to | ||
| 66 | # calculate timings. Do NOT tack on a 'UL' at the end, this will be done | ||
| 67 | # automatically to create a 32-bit value in your source code. | ||
| 68 | # | ||
| 69 | # This will be an integer division of F_USB below, as it is sourced by | ||
| 70 | # F_USB after it has run through any CPU prescalers. Note that this value | ||
| 71 | # does not *change* the processor frequency - it should merely be updated to | ||
| 72 | # reflect the processor speed set externally so that the code can use accurate | ||
| 73 | # software delays. | ||
| 74 | F_CPU = 16000000 | ||
| 75 | |||
| 76 | |||
| 77 | # | ||
| 78 | # LUFA specific | ||
| 79 | # | ||
| 80 | # Target architecture (see library "Board Types" documentation). | ||
| 81 | ARCH = AVR8 | ||
| 82 | |||
| 83 | # Input clock frequency. | ||
| 84 | # This will define a symbol, F_USB, in all source code files equal to the | ||
| 85 | # input clock frequency (before any prescaling is performed) in Hz. This value may | ||
| 86 | # differ from F_CPU if prescaling is used on the latter, and is required as the | ||
| 87 | # raw input clock is fed directly to the PLL sections of the AVR for high speed | ||
| 88 | # clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' | ||
| 89 | # at the end, this will be done automatically to create a 32-bit value in your | ||
| 90 | # source code. | ||
| 91 | # | ||
| 92 | # If no clock division is performed on the input clock inside the AVR (via the | ||
| 93 | # CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. | ||
| 94 | F_USB = $(F_CPU) | ||
| 95 | |||
| 96 | |||
| 97 | # Build Options | ||
| 98 | # comment out to disable the options. | ||
| 99 | # | ||
| 100 | MOUSEKEY_ENABLE = yes # Mouse keys | ||
| 101 | EXTRAKEY_ENABLE = yes # Audio control and System control | ||
| 102 | #NKRO_ENABLE = yes # USB Nkey Rollover | ||
| 103 | #PS2_MOUSE_ENABLE = yes # PS/2 mouse(TrackPoint) support | ||
| 104 | |||
| 105 | |||
| 106 | # Boot Section Size in bytes | ||
| 107 | # Teensy halfKay 512 | ||
| 108 | # Atmel DFU loader 4096 | ||
| 109 | # LUFA bootloader 4096 | ||
| 110 | #OPT_DEFS += -DBOOT_SIZE=4096 | ||
| 111 | |||
| 112 | |||
| 113 | # Search Path | ||
| 114 | VPATH += $(TARGET_DIR) | ||
| 115 | VPATH += $(TOP_DIR) | ||
| 116 | |||
| 117 | include $(TOP_DIR)/protocol/lufa.mk | ||
| 118 | include $(TOP_DIR)/common.mk | ||
| 119 | include $(TOP_DIR)/rules.mk | ||
diff --git a/keyboard/hhkb/Makefile.pjrc b/keyboard/hhkb/Makefile.pjrc index f6d133eae..f8836a2ca 100644 --- a/keyboard/hhkb/Makefile.pjrc +++ b/keyboard/hhkb/Makefile.pjrc | |||
| @@ -13,12 +13,11 @@ TOP_DIR = ../.. | |||
| 13 | TARGET_DIR = . | 13 | TARGET_DIR = . |
| 14 | 14 | ||
| 15 | # keyboard dependent files | 15 | # keyboard dependent files |
| 16 | SRC = main.c \ | 16 | SRC = keymap.c \ |
| 17 | keymap.c \ | ||
| 18 | matrix.c \ | 17 | matrix.c \ |
| 19 | led.c | 18 | led.c |
| 20 | 19 | ||
| 21 | CONFIG_H = config_pjrc.h | 20 | CONFIG_H = config.h |
| 22 | 21 | ||
| 23 | 22 | ||
| 24 | # MCU name, you MUST set this to match the board you are using | 23 | # MCU name, you MUST set this to match the board you are using |
| @@ -53,8 +52,8 @@ PROGRAM_CMD = teensy_loader_cli -mmcu=$(MCU) -w -v $(TARGET).hex | |||
| 53 | 52 | ||
| 54 | # Search Path | 53 | # Search Path |
| 55 | VPATH = $(TARGET_DIR) | 54 | VPATH = $(TARGET_DIR) |
| 55 | VPATH = $(TOP_DIR) | ||
| 56 | 56 | ||
| 57 | include $(TOP_DIR)/protocol/pjrc.mk | 57 | include $(TOP_DIR)/protocol/pjrc.mk |
| 58 | include $(TOP_DIR)/protocol.mk | ||
| 59 | include $(TOP_DIR)/common.mk | 58 | include $(TOP_DIR)/common.mk |
| 60 | include $(TOP_DIR)/rules.mk | 59 | include $(TOP_DIR)/rules.mk |
diff --git a/keyboard/hhkb/config_pjrc.h b/keyboard/hhkb/config.h index fffe3522c..91446466f 100644 --- a/keyboard/hhkb/config_pjrc.h +++ b/keyboard/hhkb/config.h | |||
| @@ -21,11 +21,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 21 | /* controller configuration */ | 21 | /* controller configuration */ |
| 22 | #include "controller_teensy.h" | 22 | #include "controller_teensy.h" |
| 23 | 23 | ||
| 24 | |||
| 24 | #define VENDOR_ID 0xFEED | 25 | #define VENDOR_ID 0xFEED |
| 25 | #define PRODUCT_ID 0xCAFE | 26 | #define PRODUCT_ID 0xCAFF |
| 26 | #define DEVICE_VER 0x0101 | 27 | #define DEVICE_VER 0x0101 |
| 27 | #define MANUFACTURER t.m.k. | 28 | #define MANUFACTURER t.m.k. |
| 28 | #define PRODUCT HHKB mod | 29 | #define PRODUCT HHKB mod |
| 30 | |||
| 31 | |||
| 29 | #define DESCRIPTION t.m.k. keyboard firmware for HHKB mod | 32 | #define DESCRIPTION t.m.k. keyboard firmware for HHKB mod |
| 30 | 33 | ||
| 31 | 34 | ||
diff --git a/keyboard/hhkb/matrix.c b/keyboard/hhkb/matrix.c index 350066b90..79d2d9873 100644 --- a/keyboard/hhkb/matrix.c +++ b/keyboard/hhkb/matrix.c | |||
| @@ -68,8 +68,8 @@ static bool matrix_has_ghost_in_row(uint8_t row); | |||
| 68 | // key: on: 0/off: 1 | 68 | // key: on: 0/off: 1 |
| 69 | // prev: unknown: output previous key state(negated)? | 69 | // prev: unknown: output previous key state(negated)? |
| 70 | 70 | ||
| 71 | #ifdef HOST_PJRC | 71 | #if defined(__AVR_AT90USB1286__) |
| 72 | // Ports for Teensy | 72 | // Ports for Teensy++ |
| 73 | // row: PB0-2 | 73 | // row: PB0-2 |
| 74 | // col: PB3-5,6 | 74 | // col: PB3-5,6 |
| 75 | // key: PE6(pull-uped) | 75 | // key: PE6(pull-uped) |
| @@ -90,7 +90,8 @@ static bool matrix_has_ghost_in_row(uint8_t row); | |||
| 90 | #define KEY_PREV_OFF() (PORTE &= ~(1<<7)) | 90 | #define KEY_PREV_OFF() (PORTE &= ~(1<<7)) |
| 91 | #define KEY_POWER_ON() | 91 | #define KEY_POWER_ON() |
| 92 | #define KEY_POWER_OFF() | 92 | #define KEY_POWER_OFF() |
| 93 | #else | 93 | |
| 94 | #elif defined(__AVR_ATmega328P__) | ||
| 94 | // Ports for V-USB | 95 | // Ports for V-USB |
| 95 | // key: PB0(pull-uped) | 96 | // key: PB0(pull-uped) |
| 96 | // prev: PB1 | 97 | // prev: PB1 |
| @@ -126,6 +127,9 @@ static bool matrix_has_ghost_in_row(uint8_t row); | |||
| 126 | DDRC &= ~0x0F; \ | 127 | DDRC &= ~0x0F; \ |
| 127 | PORTC &= ~0x0F; \ | 128 | PORTC &= ~0x0F; \ |
| 128 | } while (0) | 129 | } while (0) |
| 130 | |||
| 131 | #else | ||
| 132 | # error "define code for matrix scan" | ||
| 129 | #endif | 133 | #endif |
| 130 | 134 | ||
| 131 | 135 | ||
