aboutsummaryrefslogtreecommitdiff
path: root/Demos/KeyboardViaInt/KeyboardViaInt.c
diff options
context:
space:
mode:
Diffstat (limited to 'Demos/KeyboardViaInt/KeyboardViaInt.c')
-rw-r--r--Demos/KeyboardViaInt/KeyboardViaInt.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/Demos/KeyboardViaInt/KeyboardViaInt.c b/Demos/KeyboardViaInt/KeyboardViaInt.c
index b66506df5a..1e724e6fae 100644
--- a/Demos/KeyboardViaInt/KeyboardViaInt.c
+++ b/Demos/KeyboardViaInt/KeyboardViaInt.c
@@ -211,10 +211,8 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
/* Clear the endpoint data */
Endpoint_ClearSetupOUT();
- /* Wait until the host is ready to receive the request confirmation */
+ /* Acknowledge status stage */
while (!(Endpoint_IsSetupINReady()));
-
- /* Handshake the request by sending an empty IN packet */
Endpoint_ClearSetupIN();
}
@@ -229,6 +227,10 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
/* Send the flag to the host */
Endpoint_ClearSetupIN();
+
+ /* Acknowledge status stage */
+ while (!(Endpoint_IsSetupOUTReceived()));
+ Endpoint_ClearSetupOUT();
}
break;
@@ -243,7 +245,8 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
/* Set or clear the flag depending on what the host indicates that the current Protocol should be */
UsingReportProtocol = (wValue != 0x0000);
- /* Send an empty packet to acknowedge the command */
+ /* Acknowledge status stage */
+ while (!(Endpoint_IsSetupINReady()));
Endpoint_ClearSetupIN();
}
@@ -259,7 +262,8 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
/* Get idle period in MSB */
IdleCount = (wValue >> 8);
- /* Send an empty packet to acknowedge the command */
+ /* Acknowledge status stage */
+ while (!(Endpoint_IsSetupINReady()));
Endpoint_ClearSetupIN();
}
@@ -274,6 +278,10 @@ EVENT_HANDLER(USB_UnhandledControlPacket)
/* Send the flag to the host */
Endpoint_ClearSetupIN();
+
+ /* Acknowledge status stage */
+ while (!(Endpoint_IsSetupOUTReceived()));
+ Endpoint_ClearSetupOUT();
}
break;