X-Git-Url: http://git.linex4red.de/pub/lufa.git/blobdiff_plain/7c8d16fd7adae430f94004048a7702b7338f5eb1..5dfa25f81acb5480aec091d3391ba3be2d33600d:/Projects/USBtoSerial/USBtoSerial.c diff --git a/Projects/USBtoSerial/USBtoSerial.c b/Projects/USBtoSerial/USBtoSerial.c index 2c2d0c006..4f3fcf524 100644 --- a/Projects/USBtoSerial/USBtoSerial.c +++ b/Projects/USBtoSerial/USBtoSerial.c @@ -82,15 +82,11 @@ int main(void) for (;;) { /* Read bytes from the USB OUT endpoint into the USART transmit buffer */ - for (uint8_t DataBytesRem = CDC_Device_BytesReceived(&VirtualSerial_CDC_Interface); DataBytesRem != 0; DataBytesRem--) - { - if (RingBuffer_IsFull(&USBtoUSART_Buffer)) - break; - - RingBuffer_AtomicInsert(&USBtoUSART_Buffer, CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface)); - } + int16_t ReceivedByte = CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface); + if (!(ReceivedByte < 0) && !(RingBuffer_IsFull(&USBtoUSART_Buffer))) + RingBuffer_AtomicInsert(&USBtoUSART_Buffer, (uint8_t)ReceivedByte); - /* Check if the software USART flush timer has expired */ + /* Check if the UART receive buffer flush timer has expired */ if (TIFR0 & (1 << TOV0)) { TIFR0 |= (1 << TOV0);