forked from mirrors/qmk_userspace
		
	fixed hhkb to comply new API.
This commit is contained in:
		
					parent
					
						
							
								60052acc0f
							
						
					
				
			
			
				commit
				
					
						d2b9489a5e
					
				
			
		
					 8 changed files with 33 additions and 123 deletions
				
			
		| 
						 | 
					@ -32,7 +32,7 @@ uint8_t command_proc(void)
 | 
				
			||||||
    uint8_t processed = 1;
 | 
					    uint8_t processed = 1;
 | 
				
			||||||
    bool last_print_enable = print_enable;
 | 
					    bool last_print_enable = print_enable;
 | 
				
			||||||
    print_enable = true;
 | 
					    print_enable = true;
 | 
				
			||||||
    switch (keyboard_report->keys[0]) {
 | 
					    switch (host_get_first_key()) {
 | 
				
			||||||
        case KB_H:
 | 
					        case KB_H:
 | 
				
			||||||
            help();
 | 
					            help();
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
| 
						 | 
					@ -89,7 +89,7 @@ uint8_t command_proc(void)
 | 
				
			||||||
            print("timer: "); phex16(timer_count); print("\n");
 | 
					            print("timer: "); phex16(timer_count); print("\n");
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
        case KB_P: // print toggle
 | 
					        case KB_P: // print toggle
 | 
				
			||||||
            if (print_enable) {
 | 
					            if (last_print_enable) {
 | 
				
			||||||
                print("print disabled.\n");
 | 
					                print("print disabled.\n");
 | 
				
			||||||
                last_print_enable = false;
 | 
					                last_print_enable = false;
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
| 
						 | 
					@ -107,6 +107,7 @@ uint8_t command_proc(void)
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
#ifdef USB_NKRO_ENABLE
 | 
					#ifdef USB_NKRO_ENABLE
 | 
				
			||||||
        case KB_N:
 | 
					        case KB_N:
 | 
				
			||||||
 | 
					            // send empty report before change
 | 
				
			||||||
            host_clear_keyboard_report();
 | 
					            host_clear_keyboard_report();
 | 
				
			||||||
            host_send_keyboard_report();
 | 
					            host_send_keyboard_report();
 | 
				
			||||||
            keyboard_nkro = !keyboard_nkro;
 | 
					            keyboard_nkro = !keyboard_nkro;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,11 +8,13 @@ COMMON_DIR = ..
 | 
				
			||||||
TARGET_DIR = .
 | 
					TARGET_DIR = .
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# keyboard dependent files
 | 
					# keyboard dependent files
 | 
				
			||||||
TARGET_SRC =	tmk.c \
 | 
					TARGET_SRC =	main_pjrc.c \
 | 
				
			||||||
		keymap.c \
 | 
							keymap.c \
 | 
				
			||||||
  	        matrix.c \
 | 
					  	        matrix.c \
 | 
				
			||||||
		led.c
 | 
							led.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONFIG_H = config.h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# MCU name, you MUST set this to match the board you are using
 | 
					# 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
 | 
					# type "make clean" after changing this, so all files will be rebuilt
 | 
				
			||||||
| 
						 | 
					@ -38,5 +40,11 @@ USB_EXTRA_ENABLE = yes	# Enhanced feature for Windows(Audio control and System c
 | 
				
			||||||
USB_NKRO_ENABLE = yes	# USB Nkey Rollover
 | 
					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.pjrc
 | 
				
			||||||
include $(COMMON_DIR)/Makefile.common
 | 
					include $(COMMON_DIR)/Makefile.common
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,26 +10,27 @@
 | 
				
			||||||
#define PRODUCT         HHKB mod
 | 
					#define PRODUCT         HHKB mod
 | 
				
			||||||
#define DESCRIPTION     t.m.k. keyboard firmware for HHKB mod
 | 
					#define DESCRIPTION     t.m.k. keyboard firmware for HHKB mod
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* matrix size */
 | 
					/* matrix size */
 | 
				
			||||||
#define MATRIX_ROWS 8
 | 
					#define MATRIX_ROWS 8
 | 
				
			||||||
#define MATRIX_COLS 8
 | 
					#define MATRIX_COLS 8
 | 
				
			||||||
 | 
					 | 
				
			||||||
/* define if matrix has ghost */
 | 
					/* define if matrix has ghost */
 | 
				
			||||||
//#define MATRIX_HAS_GHOST
 | 
					//#define MATRIX_HAS_GHOST
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* key combination for command */
 | 
					/* key combination for command */
 | 
				
			||||||
#define IS_COMMAND() (keyboard_report->mods == (BIT_LSHIFT | BIT_RSHIFT))
 | 
					#define IS_COMMAND() ( \
 | 
				
			||||||
 | 
					    keyboard_report->mods == (BIT_LSHIFT | BIT_RSHIFT) || \
 | 
				
			||||||
 | 
					    keyboard_report->mods == (BIT_LCTRL | BIT_RSHIFT) \
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* USB NKey Rollover */
 | 
					 | 
				
			||||||
#ifdef USB_NKRO_ENABLE
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* 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
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Convert physical keyboard layout to matrix array.
 | 
					// Convert physical keyboard layout to matrix array.
 | 
				
			||||||
| 
						 | 
					@ -193,9 +193,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 host_get_mods() == (BIT_LSHIFT | BIT_RSHIFT) || host_get_mods() == (BIT_LCTRL | BIT_RSHIFT);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,7 +7,7 @@
 | 
				
			||||||
#include <util/delay.h>
 | 
					#include <util/delay.h>
 | 
				
			||||||
#include "print.h"
 | 
					#include "print.h"
 | 
				
			||||||
#include "util.h"
 | 
					#include "util.h"
 | 
				
			||||||
#include "matrix_skel.h"
 | 
					#include "matrix.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if (MATRIX_COLS > 16)
 | 
					#if (MATRIX_COLS > 16)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										3
									
								
								host.h
									
										
									
									
									
								
							
							
						
						
									
										3
									
								
								host.h
									
										
									
									
									
								
							| 
						 | 
					@ -70,8 +70,7 @@ void host_add_code(uint8_t code);
 | 
				
			||||||
void host_swap_keyboard_report(void);
 | 
					void host_swap_keyboard_report(void);
 | 
				
			||||||
void host_clear_keyboard_report(void);
 | 
					void host_clear_keyboard_report(void);
 | 
				
			||||||
uint8_t host_has_anykey(void);
 | 
					uint8_t host_has_anykey(void);
 | 
				
			||||||
uint8_t *host_get_keys(void);
 | 
					uint8_t host_get_first_key(void);
 | 
				
			||||||
uint8_t host_get_mods(void);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void host_send_keyboard_report(void);
 | 
					void host_send_keyboard_report(void);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								pjrc/host.c
									
										
									
									
									
								
							
							
						
						
									
										18
									
								
								pjrc/host.c
									
										
									
									
									
								
							| 
						 | 
					@ -4,6 +4,7 @@
 | 
				
			||||||
#include "usb_mouse.h"
 | 
					#include "usb_mouse.h"
 | 
				
			||||||
#include "debug.h"
 | 
					#include "debug.h"
 | 
				
			||||||
#include "host.h"
 | 
					#include "host.h"
 | 
				
			||||||
 | 
					#include "util.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef USB_NKRO_ENABLE
 | 
					#ifdef USB_NKRO_ENABLE
 | 
				
			||||||
| 
						 | 
					@ -80,14 +81,17 @@ uint8_t host_has_anykey(void)
 | 
				
			||||||
    return cnt;
 | 
					    return cnt;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
uint8_t *host_get_keys(void)
 | 
					uint8_t host_get_first_key(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    return keyboard_report->keys;
 | 
					#ifdef USB_NKRO_ENABLE
 | 
				
			||||||
}
 | 
					    if (keyboard_nkro) {
 | 
				
			||||||
 | 
					        uint8_t i = 0;
 | 
				
			||||||
uint8_t host_get_mods(void)
 | 
					        for (; i < REPORT_KEYS && !keyboard_report->keys[i]; i++)
 | 
				
			||||||
{
 | 
					            ;
 | 
				
			||||||
    return keyboard_report->mods;
 | 
					        return i<<3 | biton(keyboard_report->keys[i]);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					    return keyboard_report->keys[0];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										97
									
								
								tmk.c
									
										
									
									
									
								
							
							
						
						
									
										97
									
								
								tmk.c
									
										
									
									
									
								
							| 
						 | 
					@ -1,97 +0,0 @@
 | 
				
			||||||
/* 2010/08/23 noname
 | 
					 | 
				
			||||||
 * keyboard firmware based on PJRC USB keyboard example
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
/* Keyboard example with debug channel, for Teensy USB Development Board
 | 
					 | 
				
			||||||
 * http://www.pjrc.com/teensy/usb_keyboard.html
 | 
					 | 
				
			||||||
 * Copyright (c) 2008 PJRC.COM, LLC
 | 
					 | 
				
			||||||
 * 
 | 
					 | 
				
			||||||
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
					 | 
				
			||||||
 * of this software and associated documentation files (the "Software"), to deal
 | 
					 | 
				
			||||||
 * in the Software without restriction, including without limitation the rights
 | 
					 | 
				
			||||||
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
					 | 
				
			||||||
 * copies of the Software, and to permit persons to whom the Software is
 | 
					 | 
				
			||||||
 * furnished to do so, subject to the following conditions:
 | 
					 | 
				
			||||||
 * 
 | 
					 | 
				
			||||||
 * The above copyright notice and this permission notice shall be included in
 | 
					 | 
				
			||||||
 * all copies or substantial portions of the Software.
 | 
					 | 
				
			||||||
 * 
 | 
					 | 
				
			||||||
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
					 | 
				
			||||||
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
					 | 
				
			||||||
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
					 | 
				
			||||||
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
					 | 
				
			||||||
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
					 | 
				
			||||||
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | 
					 | 
				
			||||||
 * THE SOFTWARE.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <stdbool.h>
 | 
					 | 
				
			||||||
#include <avr/io.h>
 | 
					 | 
				
			||||||
#include <avr/interrupt.h>
 | 
					 | 
				
			||||||
#include <util/delay.h>
 | 
					 | 
				
			||||||
#include "keyboard.h"
 | 
					 | 
				
			||||||
#include "usb.h"
 | 
					 | 
				
			||||||
#include "matrix.h"
 | 
					 | 
				
			||||||
#include "print.h"
 | 
					 | 
				
			||||||
#include "debug.h"
 | 
					 | 
				
			||||||
#include "util.h"
 | 
					 | 
				
			||||||
#include "jump_bootloader.h"
 | 
					 | 
				
			||||||
#ifdef PS2_MOUSE_ENABLE
 | 
					 | 
				
			||||||
#   include "ps2_mouse.h"
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define CPU_PRESCALE(n)    (CLKPR = 0x80, CLKPR = (n))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
bool debug_enable = false;
 | 
					 | 
				
			||||||
bool debug_matrix = false;
 | 
					 | 
				
			||||||
bool debug_keyboard = false;
 | 
					 | 
				
			||||||
bool debug_mouse = false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int main(void)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    DEBUG_LED_CONFIG;
 | 
					 | 
				
			||||||
    DEBUG_LED_OFF;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // set for 16 MHz clock
 | 
					 | 
				
			||||||
    CPU_PRESCALE(0);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // Initialize the USB, and then wait for the host to set configuration.
 | 
					 | 
				
			||||||
    // If the Teensy is powered without a PC connected to the USB port,
 | 
					 | 
				
			||||||
    // this will wait forever.
 | 
					 | 
				
			||||||
    usb_init();
 | 
					 | 
				
			||||||
    while (!usb_configured()) /* wait */ ;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    keyboard_init();
 | 
					 | 
				
			||||||
    matrix_scan();
 | 
					 | 
				
			||||||
    if (matrix_key_count() >= 3) {
 | 
					 | 
				
			||||||
#ifdef DEBUG_LED
 | 
					 | 
				
			||||||
        for (int i = 0; i < 6; i++) {
 | 
					 | 
				
			||||||
            DEBUG_LED_CONFIG;
 | 
					 | 
				
			||||||
            DEBUG_LED_ON;
 | 
					 | 
				
			||||||
            _delay_ms(500);
 | 
					 | 
				
			||||||
            DEBUG_LED_OFF;
 | 
					 | 
				
			||||||
            _delay_ms(500);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
        _delay_ms(5000);
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
        print_enable = true;
 | 
					 | 
				
			||||||
        debug_enable = true;
 | 
					 | 
				
			||||||
        debug_matrix = true;
 | 
					 | 
				
			||||||
        debug_keyboard = true;
 | 
					 | 
				
			||||||
        debug_mouse = true;
 | 
					 | 
				
			||||||
        print("debug enabled.\n");
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    if (matrix_key_count() >= 4) {
 | 
					 | 
				
			||||||
        print("jump to bootloader...\n");
 | 
					 | 
				
			||||||
        _delay_ms(1000);
 | 
					 | 
				
			||||||
        jump_bootloader(); // not return
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    while (1) {
 | 
					 | 
				
			||||||
       keyboard_proc(); 
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue