X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=keyboard%2Fhhkb_rn42%2Fmain.c;h=c84f6b0a6a26b8fc4ece600f4c4db99f0014a7f8;hb=b4e4f599dfe1b3ecff69ab248866e7b801c35f1e;hp=b6a8456f7fa1ce9fc0169981c6092b3ca27abc8f;hpb=4069776c022502f117b83b66c5a71700135acfbc;p=tmk_firmware.git diff --git a/keyboard/hhkb_rn42/main.c b/keyboard/hhkb_rn42/main.c index b6a8456..c84f6b0 100644 --- a/keyboard/hhkb_rn42/main.c +++ b/keyboard/hhkb_rn42/main.c @@ -4,7 +4,22 @@ #include "lufa.h" #include "print.h" #include "sendchar.h" +#include "rn42.h" +#include "rn42_task.h" +#include "serial.h" +#include "keyboard.h" +#include "keycode.h" +#include "action.h" +#include "action_util.h" +#include "wait.h" +#include "suart.h" +static int8_t sendchar_func(uint8_t c) +{ + sendchar(c); // LUFA + xmit(c); // SUART + return 0; +} static void SetupHardware(void) { @@ -22,7 +37,13 @@ static void SetupHardware(void) // for Console_Task USB_Device_EnableSOFEvents(); - print_set_sendchar(sendchar); + print_set_sendchar(sendchar_func); + + // SUART PD0:output, PD1:input + DDRD |= (1<<0); + PORTD |= (1<<0); + DDRD &= ~(1<<1); + PORTD |= (1<<1); } int main(void) __attribute__ ((weak)); @@ -31,8 +52,10 @@ int main(void) SetupHardware(); sei(); - /* wait for USB startup & debug output */ - while (USB_DeviceState != DEVICE_STATE_Configured) { + /* wait for USB startup to get ready for debug output */ + uint8_t timeout = 255; // timeout when USB is not available(Bluetooth) + while (timeout-- && USB_DeviceState != DEVICE_STATE_Configured) { + wait_ms(4); #if defined(INTERRUPT_CONTROL_ENDPOINT) ; #else @@ -41,9 +64,19 @@ int main(void) } print("USB configured.\n"); + rn42_init(); + rn42_task_init(); + print("RN-42 init\n"); + /* init modules */ keyboard_init(); - host_set_driver(&lufa_driver); + + if (!rn42_rts()) { + host_set_driver(&rn42_driver); + } else { + host_set_driver(&lufa_driver); + } + #ifdef SLEEP_LED_ENABLE sleep_led_init(); #endif @@ -62,6 +95,7 @@ int main(void) #if !defined(INTERRUPT_CONTROL_ENDPOINT) USB_USBTask(); #endif + + rn42_task(); } } -