From a9398c4c9b1f903817cb3c5ae6d84be6738fc812 Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Sun, 27 Jul 2014 17:07:26 +0200 Subject: [PATCH] integrated serial mouse drivers as a feature into the firmware architecture * can be enabled by defining Makefile macro SERIAL_MOUSE_MICROSOFT_ENABLE or SERIAL_MOUSE_MOUSESYSTEMS_ENABLE. * Serial implementation can be chosen via SERIAL_MOUSE_USE_SOFT and SERIAL_MOUSE_USE_UART macros * UART configuration still has to be done in config.h: I added working clauses for both mouse protocols to ps2_usb's config.h --- protocol.mk | 20 ++++++++++++++++++++ protocol/lufa/lufa.c | 12 ++++++++++++ protocol/serial_mouse_mousesystems.c | 2 +- 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/protocol.mk b/protocol.mk index 7f561e62..de7014e8 100644 --- a/protocol.mk +++ b/protocol.mk @@ -23,5 +23,25 @@ ifdef PS2_USE_USART endif +ifdef SERIAL_MOUSE_MICROSOFT_ENABLE + SRC += $(PROTOCOL_DIR)/serial_mouse_microsoft.c + OPT_DEFS += -DSERIAL_MOUSE_ENABLE -DSERIAL_MOUSE_MICROSOFT \ + -DMOUSE_ENABLE +endif + +ifdef SERIAL_MOUSE_MOUSESYSTEMS_ENABLE + SRC += $(PROTOCOL_DIR)/serial_mouse_mousesystems.c + OPT_DEFS += -DSERIAL_MOUSE_ENABLE -DSERIAL_MOUSE_MOUSESYSTEMS \ + -DMOUSE_ENABLE +endif + +ifdef SERIAL_MOUSE_USE_SOFT + SRC += $(PROTOCOL_DIR)/serial_soft.c +endif + +ifdef SERIAL_MOUSE_USE_UART + SRC += $(PROTOCOL_DIR)/serial_uart.c +endif + # Search Path VPATH += $(TOP_DIR)/protocol diff --git a/protocol/lufa/lufa.c b/protocol/lufa/lufa.c index 16a602df..58201e5c 100644 --- a/protocol/lufa/lufa.c +++ b/protocol/lufa/lufa.c @@ -49,6 +49,10 @@ #endif #include "suspend.h" +#ifdef SERIAL_MOUSE_ENABLE +#include "serial_mouse.h" +#endif + #include "descriptor.h" #include "lufa.h" @@ -571,6 +575,10 @@ int main(void) sleep_led_init(); #endif +#ifdef SERIAL_MOUSE_ENABLE + serial_mouse_init(); +#endif + print("Keyboard start.\n"); while (1) { while (USB_DeviceState == DEVICE_STATE_Suspended) { @@ -582,6 +590,10 @@ int main(void) keyboard_task(); +#ifdef SERIAL_MOUSE_ENABLE + serial_mouse_task(); +#endif + #if !defined(INTERRUPT_CONTROL_ENDPOINT) USB_USBTask(); #endif diff --git a/protocol/serial_mouse_mousesystems.c b/protocol/serial_mouse_mousesystems.c index ec708c91..68b2b5b3 100644 --- a/protocol/serial_mouse_mousesystems.c +++ b/protocol/serial_mouse_mousesystems.c @@ -27,7 +27,7 @@ along with this program. If not, see . #include "print.h" #include "debug.h" -#define SERIAL_MOUSE_CENTER_SCROLL +//#define SERIAL_MOUSE_CENTER_SCROLL static void print_usb_data(const report_mouse_t *report);