aboutsummaryrefslogtreecommitdiff
path: root/tmk_core/protocol/vusb/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'tmk_core/protocol/vusb/main.c')
-rw-r--r--tmk_core/protocol/vusb/main.c42
1 files changed, 19 insertions, 23 deletions
diff --git a/tmk_core/protocol/vusb/main.c b/tmk_core/protocol/vusb/main.c
index 86c2188c8..f8322d94a 100644
--- a/tmk_core/protocol/vusb/main.c
+++ b/tmk_core/protocol/vusb/main.c
@@ -21,19 +21,16 @@
21#include "uart.h" 21#include "uart.h"
22#include "debug.h" 22#include "debug.h"
23 23
24
25#define UART_BAUD_RATE 115200 24#define UART_BAUD_RATE 115200
26 25
27
28/* This is from main.c of USBaspLoader */ 26/* This is from main.c of USBaspLoader */
29static void initForUsbConnectivity(void) 27static void initForUsbConnectivity(void) {
30{
31 uint8_t i = 0; 28 uint8_t i = 0;
32 29
33 usbInit(); 30 usbInit();
34 /* enforce USB re-enumerate: */ 31 /* enforce USB re-enumerate: */
35 usbDeviceDisconnect(); /* do this while interrupts are disabled */ 32 usbDeviceDisconnect(); /* do this while interrupts are disabled */
36 while(--i){ /* fake USB disconnect for > 250 ms */ 33 while (--i) { /* fake USB disconnect for > 250 ms */
37 wdt_reset(); 34 wdt_reset();
38 _delay_ms(1); 35 _delay_ms(1);
39 } 36 }
@@ -41,8 +38,7 @@ static void initForUsbConnectivity(void)
41 sei(); 38 sei();
42} 39}
43 40
44int main(void) 41int main(void) {
45{
46 bool suspended = false; 42 bool suspended = false;
47#if USB_COUNT_SOF 43#if USB_COUNT_SOF
48 uint16_t last_timer = timer_read(); 44 uint16_t last_timer = timer_read();
@@ -68,26 +64,26 @@ int main(void)
68 while (1) { 64 while (1) {
69#if USB_COUNT_SOF 65#if USB_COUNT_SOF
70 if (usbSofCount != 0) { 66 if (usbSofCount != 0) {
71 suspended = false; 67 suspended = false;
72 usbSofCount = 0; 68 usbSofCount = 0;
73 last_timer = timer_read(); 69 last_timer = timer_read();
74 } else { 70 } else {
75 // Suspend when no SOF in 3ms-10ms(7.1.7.4 Suspending of USB1.1) 71 // Suspend when no SOF in 3ms-10ms(7.1.7.4 Suspending of USB1.1)
76 if (timer_elapsed(last_timer) > 5) { 72 if (timer_elapsed(last_timer) > 5) {
77 suspended = true; 73 suspended = true;
78/* 74 /*
79 uart_putchar('S'); 75 uart_putchar('S');
80 _delay_ms(1); 76 _delay_ms(1);
81 cli(); 77 cli();
82 set_sleep_mode(SLEEP_MODE_PWR_DOWN); 78 set_sleep_mode(SLEEP_MODE_PWR_DOWN);
83 sleep_enable(); 79 sleep_enable();
84 sleep_bod_disable(); 80 sleep_bod_disable();
85 sei(); 81 sei();
86 sleep_cpu(); 82 sleep_cpu();
87 sleep_disable(); 83 sleep_disable();
88 _delay_ms(10); 84 _delay_ms(10);
89 uart_putchar('W'); 85 uart_putchar('W');
90*/ 86 */
91 } 87 }
92 } 88 }
93#endif 89#endif