]> git.gir.st - tmk_keyboard.git/blob - keyboard/hhkb_rn42/main.c
Add initial files for RN-42
[tmk_keyboard.git] / keyboard / hhkb_rn42 / main.c
1 #include <avr/io.h>
2 #include <avr/power.h>
3 #include <avr/wdt.h>
4 #include "lufa.h"
5 #include "print.h"
6 #include "sendchar.h"
7
8
9 static void SetupHardware(void)
10 {
11 /* Disable watchdog if enabled by bootloader/fuses */
12 MCUSR &= ~(1 << WDRF);
13 wdt_disable();
14
15 /* Disable clock division */
16 clock_prescale_set(clock_div_1);
17
18 // Leonardo needs. Without this USB device is not recognized.
19 USB_Disable();
20
21 USB_Init();
22
23 // for Console_Task
24 USB_Device_EnableSOFEvents();
25 print_set_sendchar(sendchar);
26 }
27
28 int main(void) __attribute__ ((weak));
29 int main(void)
30 {
31 SetupHardware();
32 sei();
33
34 /* wait for USB startup & debug output */
35 while (USB_DeviceState != DEVICE_STATE_Configured) {
36 #if defined(INTERRUPT_CONTROL_ENDPOINT)
37 ;
38 #else
39 USB_USBTask();
40 #endif
41 }
42 print("USB configured.\n");
43
44 /* init modules */
45 keyboard_init();
46 host_set_driver(&lufa_driver);
47 #ifdef SLEEP_LED_ENABLE
48 sleep_led_init();
49 #endif
50
51 print("Keyboard start.\n");
52 while (1) {
53 while (USB_DeviceState == DEVICE_STATE_Suspended) {
54 suspend_power_down();
55 if (USB_Device_RemoteWakeupEnabled && suspend_wakeup_condition()) {
56 USB_Device_SendRemoteWakeup();
57 }
58 }
59
60 keyboard_task();
61
62 #if !defined(INTERRUPT_CONTROL_ENDPOINT)
63 USB_USBTask();
64 #endif
65 }
66 }
67
Imprint / Impressum