Fixed USART reception overrun corrupting the internal buffers in the USBtoSerial...
authorDean Camera <dean@fourwalledcubicle.com>
Sun, 10 Aug 2014 09:17:58 +0000 (19:17 +1000)
committerDean Camera <dean@fourwalledcubicle.com>
Sun, 10 Aug 2014 09:17:58 +0000 (19:17 +1000)
LUFA/DoxygenPages/ChangeLog.txt
Projects/USBtoSerial/USBtoSerial.c

index d8f1d73..78d3abd 100644 (file)
@@ -24,6 +24,7 @@
   *  - Library Applications:
   *   - Fixed spurious 0xFE USART byte sent in the USBtoSerial project when the baud rate is changed (thanks to Carl Kjeldsen)
   *   - Fixed blocking USART reads causing low throughput on slow baud rates in the USBtoSerial project (thanks to Nevada Smith)
+  *   - Fixed USART reception overrun corrupting the internal buffers in the USBtoSerial project (thanks to Nevada Smith)
   *
   *  \section Sec_ChangeLog140302 Version 140302
   *  <b>New:</b>
index b51c7c2..343b51b 100644 (file)
@@ -194,7 +194,7 @@ ISR(USART1_RX_vect, ISR_BLOCK)
 {
        uint8_t ReceivedByte = UDR1;
 
-       if (USB_DeviceState == DEVICE_STATE_Configured)
+       if ((USB_DeviceState == DEVICE_STATE_Configured) && !(RingBuffer_IsFull(&USARTtoUSB_Buffer)))
          RingBuffer_Insert(&USARTtoUSB_Buffer, ReceivedByte);
 }