Commit cde2afc5 authored by Dean Camera's avatar Dean Camera
Browse files

Ensure that the CDC class drivers return 0 if the number of unread bytes is...

Ensure that the CDC class drivers return 0 if the number of unread bytes is queried and the bank has become empty.
parent c3db72af
...@@ -68,7 +68,7 @@ BOARD = ...@@ -68,7 +68,7 @@ BOARD =
# does not *change* the processor frequency - it should merely be updated to # does not *change* the processor frequency - it should merely be updated to
# reflect the processor speed set externally so that the code can use accurate # reflect the processor speed set externally so that the code can use accurate
# software delays. # software delays.
F_CPU = 8000000 F_CPU = 16000000
# Input clock frequency. # Input clock frequency.
......
...@@ -195,9 +195,14 @@ uint16_t CDC_Device_BytesReceived(USB_ClassInfo_CDC_Device_t* const CDCInterface ...@@ -195,9 +195,14 @@ uint16_t CDC_Device_BytesReceived(USB_ClassInfo_CDC_Device_t* const CDCInterface
if (Endpoint_IsOUTReceived()) if (Endpoint_IsOUTReceived())
{ {
if (!(Endpoint_BytesInEndpoint())) if (!(Endpoint_BytesInEndpoint()))
Endpoint_ClearOUT(); {
Endpoint_ClearOUT();
return Endpoint_BytesInEndpoint(); return 0;
}
else
{
return Endpoint_BytesInEndpoint();
}
} }
else else
{ {
......
...@@ -315,12 +315,16 @@ uint16_t CDC_Host_BytesReceived(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo ...@@ -315,12 +315,16 @@ uint16_t CDC_Host_BytesReceived(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo
if (Pipe_IsINReceived()) if (Pipe_IsINReceived())
{ {
if (!(Pipe_BytesInPipe())) if (!(Pipe_BytesInPipe()))
Pipe_ClearIN(); {
Pipe_ClearIN();
BytesInPipe = Pipe_BytesInPipe(); Pipe_Freeze();
Pipe_Freeze(); return 0;
}
return BytesInPipe; else
{
Pipe_Freeze();
return Pipe_BytesInPipe();
}
} }
else else
{ {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment