| void begin(long) { | void begin(long) { | ||||
| uint32_t millis_begin = systick_millis_count; | uint32_t millis_begin = systick_millis_count; | ||||
| while (!(*this)) { | while (!(*this)) { | ||||
| // wait up to 1 second for Arduino Serial Monitor | |||||
| // wait up to 4 seconds for Arduino Serial Monitor | |||||
| // Yes, this is a long time, but some Windows systems open | |||||
| // the port very slowly. This wait allows programs for | |||||
| // Arduino Uno to "just work" (without forcing a reboot when | |||||
| // the port is opened), and when no PC is connected the user's | |||||
| // sketch still gets to run normally after this wait time. | |||||
| if ((uint32_t)(systick_millis_count - millis_begin) > 4000) break; | if ((uint32_t)(systick_millis_count - millis_begin) > 4000) break; | ||||
| } | } | ||||
| } | } |