Add PS/2 mouse configure to onekey
This commit is contained in:
		
							parent
							
								
									44d2d5f5fd
								
							
						
					
					
						commit
						755e4d8b00
					
				@ -108,34 +108,25 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
 | 
				
			|||||||
# Build Options
 | 
					# Build Options
 | 
				
			||||||
#   comment out to disable the options.
 | 
					#   comment out to disable the options.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
BOOTMAGIC_ENABLE = yes	# Virtual DIP switch configuration(+1000)
 | 
					#BOOTMAGIC_ENABLE = yes	# Virtual DIP switch configuration(+1000)
 | 
				
			||||||
MOUSEKEY_ENABLE = yes	# Mouse keys(+4700)
 | 
					#MOUSEKEY_ENABLE = yes	# Mouse keys(+4700)
 | 
				
			||||||
EXTRAKEY_ENABLE = yes	# Audio control and System control(+450)
 | 
					#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
 | 
					#COMMAND_ENABLE = yes    # Commands for debug and configuration
 | 
				
			||||||
SLEEP_LED_ENABLE = yes  # Breathing sleep LED during USB suspend
 | 
					#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
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -79,32 +79,25 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
 | 
				
			|||||||
# Build Options
 | 
					# Build Options
 | 
				
			||||||
#   comment out to disable the options.
 | 
					#   comment out to disable the options.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
BOOTMAGIC_ENABLE = yes	# Virtual DIP switch configuration(+1000)
 | 
					#BOOTMAGIC_ENABLE = yes	# Virtual DIP switch configuration(+1000)
 | 
				
			||||||
MOUSEKEY_ENABLE = yes	# Mouse keys(+5000)
 | 
					#MOUSEKEY_ENABLE = yes	# Mouse keys(+5000)
 | 
				
			||||||
EXTRAKEY_ENABLE = yes	# Audio control and System control(+600)
 | 
					#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
 | 
					#COMMAND_ENABLE = yes    # Commands for debug and configuration
 | 
				
			||||||
SLEEP_LED_ENABLE = yes  # Breathing sleep LED during USB suspend
 | 
					#SLEEP_LED_ENABLE = yes  # Breathing sleep LED during USB suspend
 | 
				
			||||||
NKRO_ENABLE = yes	# USB Nkey Rollover(+500)
 | 
					#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
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -67,4 +67,89 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			|||||||
//#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
 | 
				
			||||||
 | 
				
			|||||||
@ -59,6 +59,7 @@ void matrix_init(void)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    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();
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user