projects
/
pub
/
USBasp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed MIDI_Host_Flush() not aborting early when the specified MIDI host interface...
[pub/USBasp.git]
/
Projects
/
Benito
/
Benito.c
diff --git
a/Projects/Benito/Benito.c
b/Projects/Benito/Benito.c
index
23786fb
..
a9afda4
100644
(file)
--- a/
Projects/Benito/Benito.c
+++ b/
Projects/Benito/Benito.c
@@
-92,9
+92,10
@@
int main(void)
for (;;)
{
/* Echo bytes from the host to the target via the hardware USART */
for (;;)
{
/* Echo bytes from the host to the target via the hardware USART */
- if (CDC_Device_BytesReceived(&VirtualSerial_CDC_Interface) && (UCSR1A & (1 << UDRE1)))
+ int16_t ReceivedByte = CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface);
+ if (!(ReceivedByte < 0) && (UCSR1A & (1 << UDRE1)))
{
{
- UDR1 =
CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface)
;
+ UDR1 =
ReceivedByte
;
LEDs_TurnOnLEDs(LEDMASK_TX);
PulseMSRemaining.TxLEDPulse = TX_RX_LED_PULSE_MS;
LEDs_TurnOnLEDs(LEDMASK_TX);
PulseMSRemaining.TxLEDPulse = TX_RX_LED_PULSE_MS;
@@
-126,13
+127,14
@@
int main(void)
LEDs_TurnOffLEDs(LEDMASK_RX);
/* Check if the receive buffer flush period has expired */
LEDs_TurnOffLEDs(LEDMASK_RX);
/* Check if the receive buffer flush period has expired */
- if (!(--FlushPeriodRemaining) || (Tx_Buffer.Count > 200))
+ RingBuff_Count_t BufferCount = RingBuffer_GetCount(&Tx_Buffer);
+ if (!(--FlushPeriodRemaining) || (BufferCount > 200))
{
/* Echo bytes from the target to the host via the virtual serial port */
{
/* Echo bytes from the target to the host via the virtual serial port */
- if (
Tx_Buffer.
Count)
+ if (
Buffer
Count)
{
{
- while (
Tx_Buffer.Count
)
- CDC_Device_SendByte(&VirtualSerial_CDC_Interface, RingBuffer_
Atomic
Remove(&Tx_Buffer));
+ while (
BufferCount--
)
+ CDC_Device_SendByte(&VirtualSerial_CDC_Interface, RingBuffer_Remove(&Tx_Buffer));
LEDs_TurnOnLEDs(LEDMASK_RX);
PulseMSRemaining.RxLEDPulse = TX_RX_LED_PULSE_MS;
LEDs_TurnOnLEDs(LEDMASK_RX);
PulseMSRemaining.RxLEDPulse = TX_RX_LED_PULSE_MS;
@@
-188,11
+190,13
@@
void EVENT_USB_Device_Disconnect(void)
/** Event handler for the library USB Configuration Changed event. */
void EVENT_USB_Device_ConfigurationChanged(void)
{
/** Event handler for the library USB Configuration Changed event. */
void EVENT_USB_Device_ConfigurationChanged(void)
{
+ bool ConfigSuccess = true;
+
+ ConfigSuccess &= CDC_Device_ConfigureEndpoints(&VirtualSerial_CDC_Interface);
+
PulseMSRemaining.PingPongLEDPulse = 0;
PulseMSRemaining.PingPongLEDPulse = 0;
- LEDs_SetAllLEDs(LEDS_NO_LEDS);
- if (!(CDC_Device_ConfigureEndpoints(&VirtualSerial_CDC_Interface)))
- LEDs_SetAllLEDs(LEDMASK_ERROR);
+ LEDs_SetAllLEDs(ConfigSuccess ? LEDS_NO_LEDS : LEDMASK_ERROR);
}
/** Event handler for the library USB Unhandled Control Request event. */
}
/** Event handler for the library USB Unhandled Control Request event. */