diff options
Diffstat (limited to 'Demos/Device')
-rw-r--r-- | Demos/Device/ClassDriver/MIDI/MIDI.c | 2 | ||||
-rw-r--r-- | Demos/Device/LowLevel/MIDI/MIDI.c | 8 |
2 files changed, 7 insertions, 3 deletions
diff --git a/Demos/Device/ClassDriver/MIDI/MIDI.c b/Demos/Device/ClassDriver/MIDI/MIDI.c index 217a3a4bd..95a2ddd0e 100644 --- a/Demos/Device/ClassDriver/MIDI/MIDI.c +++ b/Demos/Device/ClassDriver/MIDI/MIDI.c @@ -71,7 +71,7 @@ int main(void) CheckJoystickMovement(); MIDI_EventPacket_t ReceivedMIDIEvent; - if (MIDI_Device_ReceiveEventPacket(&Keyboard_MIDI_Interface, &ReceivedMIDIEvent)) + while (MIDI_Device_ReceiveEventPacket(&Keyboard_MIDI_Interface, &ReceivedMIDIEvent)) { if ((ReceivedMIDIEvent.Command == (MIDI_COMMAND_NOTE_ON >> 4)) && (ReceivedMIDIEvent.Data3 > 0)) LEDs_SetAllLEDs(ReceivedMIDIEvent.Data2 > 64 ? LEDS_LED1 : LEDS_LED2); diff --git a/Demos/Device/LowLevel/MIDI/MIDI.c b/Demos/Device/LowLevel/MIDI/MIDI.c index e43645585..bfe90b0d1 100644 --- a/Demos/Device/LowLevel/MIDI/MIDI.c +++ b/Demos/Device/LowLevel/MIDI/MIDI.c @@ -204,8 +204,12 @@ void MIDI_Task(void) LEDs_SetAllLEDs(LEDS_NO_LEDS); } - /* Clear the endpoint ready for new packet */ - Endpoint_ClearOUT(); + /* If the endpoint is now empty, clear the bank */ + if (!(Endpoint_BytesInEndpoint())) + { + /* Clear the endpoint ready for new packet */ + Endpoint_ClearOUT(); + } } } |