X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/7c8d16fd7adae430f94004048a7702b7338f5eb1..24e621a8d8424721ed21ce329d2a28dbf8c35343:/Projects/USBtoSerial/USBtoSerial.c diff --git a/Projects/USBtoSerial/USBtoSerial.c b/Projects/USBtoSerial/USBtoSerial.c index 2c2d0c006..d7df3d91f 100644 --- a/Projects/USBtoSerial/USBtoSerial.c +++ b/Projects/USBtoSerial/USBtoSerial.c @@ -82,13 +82,9 @@ 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 */ if (TIFR0 & (1 << TOV0))