diff options
Diffstat (limited to 'tmk_core/protocol/vusb/main.c')
| -rw-r--r-- | tmk_core/protocol/vusb/main.c | 42 |
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 */ |
| 29 | static void initForUsbConnectivity(void) | 27 | static 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 | ||
| 44 | int main(void) | 41 | int 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 |
