/*
- LUFA Library
- Copyright (C) Dean Camera, 2010.
-
+ LUFA Library
+ Copyright (C) Dean Camera, 2010.
+
dean [at] fourwalledcubicle [dot] com
- www.fourwalledcubicle.com
+ www.lufa-lib.org
*/
/*
Copyright 2010 Peter Danneger
Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com)
- Permission to use, copy, modify, distribute, and sell this
+ Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
- without fee, provided that the above copyright notice appear in
+ without fee, provided that the above copyright notice appear in
all copies and that both that the copyright notice and this
- permission notice and warranty disclaimer appear in supporting
- documentation, and that the name of the author not be used in
- advertising or publicity pertaining to distribution of the
+ permission notice and warranty disclaimer appear in supporting
+ documentation, and that the name of the author not be used in
+ advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
The author disclaim all warranties with regard to this
{
/* Reset the number of reception bits remaining counter */
RX_BitsRemaining = 8;
-
+
/* Reset the bit reception timer */
TCNT1 = 0;
/* Reception complete, store the received byte if stop bit valid */
if (SRX_Cached)
- RingBuffer_Insert(&UARTtoUSB_Buffer, RX_Data);
+ RingBuffer_Insert(&UARTtoUSB_Buffer, RX_Data);
}
}
TX_Data >>= 1;
TX_BitsRemaining--;
}
- else if (USBtoUART_Buffer.Count && !(RX_BitsRemaining))
+ else if (!(RX_BitsRemaining) && !(RingBuffer_IsEmpty(&USBtoUART_Buffer)))
{
/* Start bit - TX line low */
STXPORT &= ~(1 << STX);
TX_BitsRemaining = 9;
}
}
+