aboutsummaryrefslogtreecommitdiff
path: root/cores/arduino
diff options
context:
space:
mode:
authorCristian Maglie <c.maglie@bug.st>2012-03-07 16:21:04 +0100
committerCristian Maglie <c.maglie@bug.st>2012-03-07 16:21:04 +0100
commitb407337677f8b6964a69939e0fb5a371dfb0d3e4 (patch)
tree5f85b35863c1d84ce1ab91a93cc6d1fda30c4d54 /cores/arduino
parent15660068717c4721c60c9caefc1a8eaff702cc24 (diff)
Fix for some strange behaviours during board reset
Diffstat (limited to 'cores/arduino')
-rw-r--r--cores/arduino/USBCore.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/cores/arduino/USBCore.cpp b/cores/arduino/USBCore.cpp
index 7924078..c360d26 100644
--- a/cores/arduino/USBCore.cpp
+++ b/cores/arduino/USBCore.cpp
@@ -637,6 +637,12 @@ void USB_::attach()
PLLCSR = 0x12; // Need 16 MHz xtal
while (!(PLLCSR & (1<<PLOCK))) // wait for lock pll
;
+
+ // Some tests on specific versions of macosx (10.7.3), reported some
+ // strange behaviuors when the board is reset using the serial
+ // port touch at 1200 bps. This delay fixes this behaviour.
+ delay(1);
+
USBCON = ((1<<USBE)|(1<<OTGPADE)); // start USB clock
UDIEN = (1<<EORSTE)|(1<<SOFE); // Enable interrupts for EOR (End of Reset) and SOF (start of frame)
UDCON = 0; // enable attach resistor
@@ -659,4 +665,4 @@ void USB_::poll()
{
}
-#endif /* if defined(USBCON) */ \ No newline at end of file
+#endif /* if defined(USBCON) */