# Build Options | # Build Options | ||||
# comment out to disable the options. | # comment out to disable the options. | ||||
# | # | ||||
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) | |||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700) | |||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | |||||
#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) | |||||
#MOUSEKEY_ENABLE = yes # Mouse keys(+4700) | |||||
#EXTRAKEY_ENABLE = yes # Audio control and System control(+450) | |||||
CONSOLE_ENABLE = yes # Console for debug(+400) | CONSOLE_ENABLE = yes # Console for debug(+400) | ||||
COMMAND_ENABLE = yes # Commands for debug and configuration | |||||
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend | |||||
#COMMAND_ENABLE = yes # Commands for debug and configuration | |||||
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend | |||||
#NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA | #NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA | ||||
PS2_MOUSE_ENABLE = yes # PS/2 mouse(TrackPoint) support | |||||
PS2_USE_BUSYWAIT = yes # uses primitive reference code | |||||
#PS2_USE_INT = yes # uses external interrupt for falling edge of PS/2 clock pin | |||||
#PS2_USE_USART = yes # uses hardware USART engine for PS/2 signal receive(recomened) | |||||
# Optimize size but this may cause error "relocation truncated to fit" | |||||
#EXTRALDFLAGS = -Wl,--relax | |||||
# Search Path | # Search Path | ||||
VPATH += $(TARGET_DIR) | VPATH += $(TARGET_DIR) | ||||
VPATH += $(TOP_DIR) | VPATH += $(TOP_DIR) | ||||
include $(TOP_DIR)/protocol/lufa.mk | |||||
include $(TOP_DIR)/common.mk | include $(TOP_DIR)/common.mk | ||||
include $(TOP_DIR)/protocol.mk | |||||
include $(TOP_DIR)/protocol/lufa.mk | |||||
include $(TOP_DIR)/rules.mk | include $(TOP_DIR)/rules.mk | ||||
plain: OPT_DEFS += -DKEYMAP_PLAIN | |||||
plain: all | |||||
poker: OPT_DEFS += -DKEYMAP_POKER | |||||
poker: all | |||||
poker_set: OPT_DEFS += -DKEYMAP_POKER_SET | |||||
poker_set: all | |||||
poker_bit: OPT_DEFS += -DKEYMAP_POKER_BIT | |||||
poker_bit: all |
# Build Options | # Build Options | ||||
# comment out to disable the options. | # comment out to disable the options. | ||||
# | # | ||||
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) | |||||
MOUSEKEY_ENABLE = yes # Mouse keys(+5000) | |||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+600) | |||||
#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) | |||||
#MOUSEKEY_ENABLE = yes # Mouse keys(+5000) | |||||
#EXTRAKEY_ENABLE = yes # Audio control and System control(+600) | |||||
CONSOLE_ENABLE = yes # Console for debug | CONSOLE_ENABLE = yes # Console for debug | ||||
COMMAND_ENABLE = yes # Commands for debug and configuration | |||||
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend | |||||
NKRO_ENABLE = yes # USB Nkey Rollover(+500) | |||||
#COMMAND_ENABLE = yes # Commands for debug and configuration | |||||
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend | |||||
#NKRO_ENABLE = yes # USB Nkey Rollover(+500) | |||||
#PS2_MOUSE_ENABLE = yes # PS/2 mouse(TrackPoint) support | #PS2_MOUSE_ENABLE = yes # PS/2 mouse(TrackPoint) support | ||||
#PS2_USE_BUSYWAIT = yes # uses primitive reference code | |||||
#PS2_USE_INT = yes # uses external interrupt for falling edge of PS/2 clock pin | |||||
#PS2_USE_USART = yes # uses hardware USART engine for PS/2 signal receive(recomened) | |||||
# Search Path | # Search Path | ||||
VPATH += $(TARGET_DIR) | VPATH += $(TARGET_DIR) | ||||
VPATH += $(TOP_DIR) | VPATH += $(TOP_DIR) | ||||
include $(TOP_DIR)/protocol/pjrc.mk | |||||
include $(TOP_DIR)/common.mk | include $(TOP_DIR)/common.mk | ||||
include $(TOP_DIR)/protocol.mk | |||||
include $(TOP_DIR)/protocol/pjrc.mk | |||||
include $(TOP_DIR)/rules.mk | include $(TOP_DIR)/rules.mk | ||||
plain: OPT_DEFS += -DKEYMAP_PLAIN | |||||
plain: all | |||||
poker: OPT_DEFS += -DKEYMAP_POKER | |||||
poker: all | |||||
poker_set: OPT_DEFS += -DKEYMAP_POKER_SET | |||||
poker_set: all | |||||
poker_bit: OPT_DEFS += -DKEYMAP_POKER_BIT | |||||
poker_bit: all |
//#define NO_ACTION_MACRO | //#define NO_ACTION_MACRO | ||||
//#define NO_ACTION_FUNCTION | //#define NO_ACTION_FUNCTION | ||||
/* PS/2 mouse */ | |||||
#define PS2_MOUSE_DEBUG | |||||
#ifdef PS2_USE_BUSYWAIT | |||||
# define PS2_CLOCK_PORT PORTD | |||||
# define PS2_CLOCK_PIN PIND | |||||
# define PS2_CLOCK_DDR DDRD | |||||
# define PS2_CLOCK_BIT 1 | |||||
# define PS2_DATA_PORT PORTD | |||||
# define PS2_DATA_PIN PIND | |||||
# define PS2_DATA_DDR DDRD | |||||
# define PS2_DATA_BIT 2 | |||||
#endif | |||||
#ifdef PS2_USE_INT | |||||
/* uses INT1 for clock line(ATMega32U4) */ | |||||
#define PS2_CLOCK_PORT PORTD | |||||
#define PS2_CLOCK_PIN PIND | |||||
#define PS2_CLOCK_DDR DDRD | |||||
#define PS2_CLOCK_BIT 1 | |||||
#define PS2_DATA_PORT PORTD | |||||
#define PS2_DATA_PIN PIND | |||||
#define PS2_DATA_DDR DDRD | |||||
#define PS2_DATA_BIT 2 | |||||
#define PS2_INT_INIT() do { \ | |||||
EICRA |= ((1<<ISC11) | \ | |||||
(0<<ISC10)); \ | |||||
} while (0) | |||||
#define PS2_INT_ON() do { \ | |||||
EIMSK |= (1<<INT1); \ | |||||
} while (0) | |||||
#define PS2_INT_OFF() do { \ | |||||
EIMSK &= ~(1<<INT1); \ | |||||
} while (0) | |||||
#define PS2_INT_VECT INT1_vect | |||||
#endif | |||||
#ifdef PS2_USE_USART | |||||
#if defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__) | |||||
/* XCK for clock line and RXD for data line */ | |||||
#define PS2_CLOCK_PORT PORTD | |||||
#define PS2_CLOCK_PIN PIND | |||||
#define PS2_CLOCK_DDR DDRD | |||||
#define PS2_CLOCK_BIT 5 | |||||
#define PS2_DATA_PORT PORTD | |||||
#define PS2_DATA_PIN PIND | |||||
#define PS2_DATA_DDR DDRD | |||||
#define PS2_DATA_BIT 2 | |||||
/* synchronous, odd parity, 1-bit stop, 8-bit data, sample at falling edge */ | |||||
/* set DDR of CLOCK as input to be slave */ | |||||
#define PS2_USART_INIT() do { \ | |||||
PS2_CLOCK_DDR &= ~(1<<PS2_CLOCK_BIT); \ | |||||
PS2_DATA_DDR &= ~(1<<PS2_DATA_BIT); \ | |||||
UCSR1C = ((1 << UMSEL10) | \ | |||||
(3 << UPM10) | \ | |||||
(0 << USBS1) | \ | |||||
(3 << UCSZ10) | \ | |||||
(0 << UCPOL1)); \ | |||||
UCSR1A = 0; \ | |||||
UBRR1H = 0; \ | |||||
UBRR1L = 0; \ | |||||
} while (0) | |||||
#define PS2_USART_RX_INT_ON() do { \ | |||||
UCSR1B = ((1 << RXCIE1) | \ | |||||
(1 << RXEN1)); \ | |||||
} while (0) | |||||
#define PS2_USART_RX_POLL_ON() do { \ | |||||
UCSR1B = (1 << RXEN1); \ | |||||
} while (0) | |||||
#define PS2_USART_OFF() do { \ | |||||
UCSR1C = 0; \ | |||||
UCSR1B &= ~((1 << RXEN1) | \ | |||||
(1 << TXEN1)); \ | |||||
} while (0) | |||||
#define PS2_USART_RX_READY (UCSR1A & (1<<RXC1)) | |||||
#define PS2_USART_RX_DATA UDR1 | |||||
#define PS2_USART_ERROR (UCSR1A & ((1<<FE1) | (1<<DOR1) | (1<<UPE1))) | |||||
#define PS2_USART_RX_VECT USART1_RX_vect | |||||
#endif | |||||
#endif | |||||
#endif | #endif |
{ | { | ||||
debug_enable = true; | debug_enable = true; | ||||
debug_matrix = true; | debug_matrix = true; | ||||
debug_mouse = true; | |||||
// initialize row and col | // initialize row and col | ||||
unselect_rows(); | unselect_rows(); | ||||
init_cols(); | init_cols(); |