X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/4a09da20989dfe0c41dc1272fa6dce1e11539c15..38039765346c7441208dbcb3fd3cf8f13b7ced58:/Demos/Keyboard/Keyboard.c diff --git a/Demos/Keyboard/Keyboard.c b/Demos/Keyboard/Keyboard.c index 22d406dbe..931f08098 100644 --- a/Demos/Keyboard/Keyboard.c +++ b/Demos/Keyboard/Keyboard.c @@ -210,10 +210,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(); } @@ -228,6 +226,10 @@ EVENT_HANDLER(USB_UnhandledControlPacket) /* Send the flag to the host */ Endpoint_ClearSetupIN(); + + /* Acknowledge status stage */ + while (!(Endpoint_IsSetupOUTReceived())); + Endpoint_ClearSetupOUT(); } break; @@ -242,7 +244,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(); } @@ -258,7 +261,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(); } @@ -273,6 +277,10 @@ EVENT_HANDLER(USB_UnhandledControlPacket) /* Send the flag to the host */ Endpoint_ClearSetupIN(); + + /* Acknowledge status stage */ + while (!(Endpoint_IsSetupOUTReceived())); + Endpoint_ClearSetupOUT(); } break;