int main(void) { // set for 16 MHz clock CPU_PRESCALE(0); // Initialize the USB, and then wait for the host to set configuration. // If the Teensy is powered without a PC connected to the USB port, // this will wait forever. usb_init(); while (!usb_configured()) /* wait */ ; keyboard_init(); host_set_driver(pjrc_driver()); #ifdef SLEEP_LED_ENABLE sleep_led_init(); #endif while (1) { while (suspend) { suspend_power_down(); if (remote_wakeup && suspend_wakeup_condition()) { usb_remote_wakeup(); } } keyboard_task(); } }
/* Main thread */ int main(void) { /* ChibiOS/RT init */ halInit(); chSysInit(); // TESTING // chThdCreateStatic(waBlinkerThread, sizeof(waBlinkerThread), NORMALPRIO, blinkerThread, NULL); hook_early_init(); /* Init USB */ init_usb_driver(&USB_DRIVER); /* init printf */ init_printf(NULL,sendchar_pf); /* Wait until the USB is active */ while(USB_DRIVER.state != USB_ACTIVE) chThdSleepMilliseconds(50); /* Do need to wait here! * Otherwise the next print might start a transfer on console EP * before the USB is completely ready, which sometimes causes * HardFaults. */ chThdSleepMilliseconds(50); print("USB configured.\n"); /* init TMK modules */ keyboard_init(); host_set_driver(&chibios_driver); #ifdef SLEEP_LED_ENABLE sleep_led_init(); #endif print("Keyboard start.\n"); hook_late_init(); /* Main loop */ while(true) { if(USB_DRIVER.state == USB_SUSPENDED) { print("[s]"); while(USB_DRIVER.state == USB_SUSPENDED) { hook_usb_suspend_loop(); } /* Woken up */ // variables have been already cleared send_keyboard_report(); #ifdef MOUSEKEY_ENABLE mousekey_send(); #endif /* MOUSEKEY_ENABLE */ } keyboard_task(); } }
int main(void) { setup_mcu(); keyboard_setup(); setup_usb(); sei(); /* init modules */ serial_init(); keyboard_init(); host_set_driver(&lufa_driver); #ifdef SLEEP_LED_ENABLE sleep_led_init(); #endif print("Keyboard start.\n"); while (1) { while (USB_DeviceState == DEVICE_STATE_Suspended) { print("[s]"); matrix_power_down(); suspend_power_down(); if (USB_Device_RemoteWakeupEnabled && suspend_wakeup_condition()) { USB_Device_SendRemoteWakeup(); } } keyboard_task(); #if !defined(INTERRUPT_CONTROL_ENDPOINT) USB_USBTask(); #endif } }
int main(void) { // set for 16 MHz clock CPU_PRESCALE(0); // Initialize the USB, and then wait for the host to set configuration. // If the Teensy is powered without a PC connected to the USB port, // this will wait forever. usb_init(); while (!usb_configured()) /* wait */ ; print_set_sendchar(sendchar); keyboard_init(); host_set_driver(pjrc_driver()); #ifdef SLEEP_LED_ENABLE sleep_led_init(); #endif while (1) { uint32_t mtl_time = timer_read32(); for ( int i = 0; i < 1000; i++ ) { /*print( "Main loop: i = " );*/ /*phex( (uint8_t) ( i >> 8 ) & 0xff );*/ /*phex( (uint8_t) ( i >> 0 ) & 0xff );*/ /*print( "\n" );*/ while (suspend) { suspend_power_down(); if (remote_wakeup && suspend_wakeup_condition()) { usb_remote_wakeup(); } } keyboard_task(); } mtl_time = timer_elapsed32( mtl_time ); // No TP: 247 ms // TP full: 10820 ms // No usb report: same as TP full // print( "Time for 1,000 keyboard_tasks: " ); // phex( (uint8_t) ( mtl_time >> 24 ) & 0xff ); // phex( (uint8_t) ( mtl_time >> 16 ) & 0xff ); // phex( (uint8_t) ( mtl_time >> 8 ) & 0xff ); // phex( (uint8_t) ( mtl_time >> 0 ) & 0xff ); // print( "\n" ); } }
int main(void) { setup_hardware(); setup_set_handedness(); sei(); /* wait for USB startup to get ready for debug output */ uint8_t timeout = 200; // timeout when USB is not available while (timeout-- && USB_DeviceState != DEVICE_STATE_Configured) { wait_ms(5); #if defined(INTERRUPT_CONTROL_ENDPOINT) ; #else USB_USBTask(); #endif } /* if (USB_DeviceState != DEVICE_STATE_Configured) { */ if (!has_usb()) { // USB failed to connect, so run this device in slave mode. matrix_init(); serial_slave_init(); while (1) { matrix_slave_scan(); } } /* init modules */ keyboard_init(); host_set_driver(&lufa_driver); #ifdef SLEEP_LED_ENABLE sleep_led_init(); #endif while (1) { keyboard_task(); #if !defined(INTERRUPT_CONTROL_ENDPOINT) USB_USBTask(); #endif } }
/* Main thread */ int main(void) { /* ChibiOS/RT init */ halInit(); chSysInit(); // TESTING // chThdCreateStatic(waBlinkerThread, sizeof(waBlinkerThread), NORMALPRIO, blinkerThread, NULL); /* Init USB */ init_usb_driver(&USB_DRIVER); /* init printf */ init_printf(NULL,sendchar_pf); #ifdef SERIAL_LINK_ENABLE init_serial_link(); #endif #ifdef VISUALIZER_ENABLE visualizer_init(); #endif host_driver_t* driver = NULL; /* Wait until the USB or serial link is active */ while (true) { if(USB_DRIVER.state == USB_ACTIVE) { driver = &chibios_driver; break; } #ifdef SERIAL_LINK_ENABLE if(is_serial_link_connected()) { driver = get_serial_link_driver(); break; } serial_link_update(); #endif chThdSleepMilliseconds(50); } /* Do need to wait here! * Otherwise the next print might start a transfer on console EP * before the USB is completely ready, which sometimes causes * HardFaults. */ chThdSleepMilliseconds(50); print("USB configured.\n"); /* init TMK modules */ keyboard_init(); host_set_driver(driver); #ifdef SLEEP_LED_ENABLE sleep_led_init(); #endif print("Keyboard start.\n"); /* Main loop */ while(true) { if(USB_DRIVER.state == USB_SUSPENDED) { print("[s]"); #ifdef VISUALIZER_ENABLE visualizer_suspend(); #endif while(USB_DRIVER.state == USB_SUSPENDED) { /* Do this in the suspended state */ #ifdef SERIAL_LINK_ENABLE serial_link_update(); #endif suspend_power_down(); // on AVR this deep sleeps for 15ms /* Remote wakeup */ if((USB_DRIVER.status & 2) && suspend_wakeup_condition()) { send_remote_wakeup(&USB_DRIVER); } } /* Woken up */ // variables has been already cleared by the wakeup hook send_keyboard_report(); #ifdef MOUSEKEY_ENABLE mousekey_send(); #endif /* MOUSEKEY_ENABLE */ #ifdef VISUALIZER_ENABLE visualizer_resume(); #endif } keyboard_task(); } }
int main(void) { SetupHardware(); sei(); /* 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 USB_USBTask(); #endif } print("\nUSB init\n"); rn42_init(); rn42_task_init(); print("RN-42 init\n"); /* init modules */ keyboard_init(); if (!rn42_rts()) { host_set_driver(&rn42_driver); } else { host_set_driver(&lufa_driver); } #ifdef SLEEP_LED_ENABLE sleep_led_init(); #endif print("Keyboard start\n"); while (1) { while (rn42_rts() && // RN42 is off USB_DeviceState == DEVICE_STATE_Suspended) { print("[s]"); matrix_power_down(); suspend_power_down(); suspend_power_down(); suspend_power_down(); suspend_power_down(); suspend_power_down(); suspend_power_down(); suspend_power_down(); if (USB_Device_RemoteWakeupEnabled && suspend_wakeup_condition()) { USB_Device_SendRemoteWakeup(); } } keyboard_task(); #if !defined(INTERRUPT_CONTROL_ENDPOINT) USB_USBTask(); #endif rn42_task(); } }
void rn42_task_init(void) { battery_init(); sleep_led_init(); }
/* Main thread */ int main(void) { /* ChibiOS/RT init */ halInit(); chSysInit(); #ifdef STM32_EEPROM_ENABLE EEPROM_Init(); #endif // TESTING // chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL); keyboard_setup(); /* Init USB */ init_usb_driver(&USB_DRIVER); /* init printf */ init_printf(NULL,sendchar_pf); #ifdef MIDI_ENABLE setup_midi(); #endif #ifdef SERIAL_LINK_ENABLE init_serial_link(); #endif #ifdef VISUALIZER_ENABLE visualizer_init(); #endif host_driver_t* driver = NULL; /* Wait until the USB or serial link is active */ while (true) { #if defined(WAIT_FOR_USB) || defined(SERIAL_LINK_ENABLE) if(USB_DRIVER.state == USB_ACTIVE) { driver = &chibios_driver; break; } #else driver = &chibios_driver; break; #endif #ifdef SERIAL_LINK_ENABLE if(is_serial_link_connected()) { driver = get_serial_link_driver(); break; } serial_link_update(); #endif wait_ms(50); } /* Do need to wait here! * Otherwise the next print might start a transfer on console EP * before the USB is completely ready, which sometimes causes * HardFaults. */ wait_ms(50); print("USB configured.\n"); /* init TMK modules */ keyboard_init(); host_set_driver(driver); #ifdef SLEEP_LED_ENABLE sleep_led_init(); #endif print("Keyboard start.\n"); /* Main loop */ while(true) { #if !defined(NO_USB_STARTUP_CHECK) if(USB_DRIVER.state == USB_SUSPENDED) { print("[s]"); #ifdef VISUALIZER_ENABLE visualizer_suspend(); #endif while(USB_DRIVER.state == USB_SUSPENDED) { /* Do this in the suspended state */ #ifdef SERIAL_LINK_ENABLE serial_link_update(); #endif suspend_power_down(); // on AVR this deep sleeps for 15ms /* Remote wakeup */ if(suspend_wakeup_condition()) { usbWakeupHost(&USB_DRIVER); } } /* Woken up */ // variables has been already cleared by the wakeup hook send_keyboard_report(); #ifdef MOUSEKEY_ENABLE mousekey_send(); #endif /* MOUSEKEY_ENABLE */ #ifdef VISUALIZER_ENABLE visualizer_resume(); #endif } #endif keyboard_task(); #ifdef CONSOLE_ENABLE console_task(); #endif #ifdef VIRTSER_ENABLE virtser_task(); #endif #ifdef RAW_ENABLE raw_hid_task(); #endif } }