diff options
author | tmk <nobody@nowhere> | 2012-09-04 14:24:52 +0900 |
---|---|---|
committer | tmk <nobody@nowhere> | 2012-09-04 14:24:52 +0900 |
commit | dc79a8521946a3a2e5b86945b8043b87a8b8d78c (patch) | |
tree | 737827112555c00a7f2ebbb88e61079c460be71a /protocol/lufa | |
parent | 7350b7c6aa300a234244c264b10d1732803c27df (diff) | |
parent | 232ab308e358e41f3253d66fa009c1ebca0951a2 (diff) |
Merge branch 'usb_hid'
Diffstat (limited to 'protocol/lufa')
-rw-r--r-- | protocol/lufa/lufa.c | 96 | ||||
-rw-r--r-- | protocol/lufa/lufa.h | 11 |
2 files changed, 63 insertions, 44 deletions
diff --git a/protocol/lufa/lufa.c b/protocol/lufa/lufa.c index b7ecb8488d..81409ce9ed 100644 --- a/protocol/lufa/lufa.c +++ b/protocol/lufa/lufa.c @@ -59,7 +59,7 @@ static void send_keyboard(report_keyboard_t *report); static void send_mouse(report_mouse_t *report); static void send_system(uint16_t data); static void send_consumer(uint16_t data); -static host_driver_t lufa_driver = { +host_driver_t lufa_driver = { keyboard_leds, send_keyboard, send_mouse, @@ -68,49 +68,9 @@ static host_driver_t lufa_driver = { }; -static void SetupHardware(void); -static void Console_Task(void); - -int main(void) -{ - SetupHardware(); - sei(); - - print_enable = true; - debug_enable = true; - debug_matrix = true; - debug_keyboard = true; - debug_mouse = true; - - // TODO: can't print here - debug("LUFA init\n"); - - keyboard_init(); - host_set_driver(&lufa_driver); - while (1) { - keyboard_proc(); - -#if !defined(INTERRUPT_CONTROL_ENDPOINT) - USB_USBTask(); -#endif - } -} - -void SetupHardware(void) -{ - /* Disable watchdog if enabled by bootloader/fuses */ - MCUSR &= ~(1 << WDRF); - wdt_disable(); - - /* Disable clock division */ - clock_prescale_set(clock_div_1); - - USB_Init(); - - // for Console_Task - USB_Device_EnableSOFEvents(); -} - +/******************************************************************************* + * Console + ******************************************************************************/ #ifdef CONSOLE_ENABLE static void Console_Task(void) { @@ -446,3 +406,51 @@ int8_t sendchar(uint8_t c) return 0; } #endif + + +/******************************************************************************* + * main + ******************************************************************************/ +static void SetupHardware(void) +{ + /* Disable watchdog if enabled by bootloader/fuses */ + MCUSR &= ~(1 << WDRF); + wdt_disable(); + + /* Disable clock division */ + clock_prescale_set(clock_div_1); + + // Leonardo needs. Without this USB device is not recognized. + USB_Disable(); + + USB_Init(); + + // for Console_Task + USB_Device_EnableSOFEvents(); +} + +int main(void) __attribute__ ((weak)); +int main(void) +{ + SetupHardware(); + sei(); + + print_enable = true; + debug_enable = true; + debug_matrix = true; + debug_keyboard = true; + debug_mouse = true; + + // TODO: can't print here + debug("LUFA init\n"); + + keyboard_init(); + host_set_driver(&lufa_driver); + while (1) { + keyboard_proc(); + +#if !defined(INTERRUPT_CONTROL_ENDPOINT) + USB_USBTask(); +#endif + } +} diff --git a/protocol/lufa/lufa.h b/protocol/lufa/lufa.h index 71c279b0dc..bcee060d67 100644 --- a/protocol/lufa/lufa.h +++ b/protocol/lufa/lufa.h @@ -47,8 +47,19 @@ #include <string.h> #include <LUFA/Version.h> #include <LUFA/Drivers/USB/USB.h> +#include "host.h" +#ifdef __cplusplus +extern "C" { +#endif + +extern host_driver_t lufa_driver; + +#ifdef __cplusplus +} +#endif + /* extra report structure */ typedef struct { uint8_t report_id; |