projects
/
pub
/
USBasp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed incorrect/missing control status stage transfers on demos, bootloaders and...
[pub/USBasp.git]
/
Demos
/
Keyboard
/
Keyboard.c
diff --git
a/Demos/Keyboard/Keyboard.c
b/Demos/Keyboard/Keyboard.c
index
22d406d
..
931f080
100644
(file)
--- a/
Demos/Keyboard/Keyboard.c
+++ b/
Demos/Keyboard/Keyboard.c
@@
-210,10
+210,8
@@
EVENT_HANDLER(USB_UnhandledControlPacket)
/* Clear the endpoint data */
\r
Endpoint_ClearSetupOUT();
\r
\r
/* Clear the endpoint data */
\r
Endpoint_ClearSetupOUT();
\r
\r
- /*
Wait until the host is ready to receive the request confirmation
*/
\r
+ /*
Acknowledge status stage
*/
\r
while (!(Endpoint_IsSetupINReady()));
\r
while (!(Endpoint_IsSetupINReady()));
\r
-
\r
- /* Handshake the request by sending an empty IN packet */
\r
Endpoint_ClearSetupIN();
\r
}
\r
\r
Endpoint_ClearSetupIN();
\r
}
\r
\r
@@
-228,6
+226,10
@@
EVENT_HANDLER(USB_UnhandledControlPacket)
\r
/* Send the flag to the host */
\r
Endpoint_ClearSetupIN();
\r
\r
/* Send the flag to the host */
\r
Endpoint_ClearSetupIN();
\r
+
\r
+ /* Acknowledge status stage */
\r
+ while (!(Endpoint_IsSetupOUTReceived()));
\r
+ Endpoint_ClearSetupOUT();
\r
}
\r
\r
break;
\r
}
\r
\r
break;
\r
@@
-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 */
\r
UsingReportProtocol = (wValue != 0x0000);
\r
\r
/* Set or clear the flag depending on what the host indicates that the current Protocol should be */
\r
UsingReportProtocol = (wValue != 0x0000);
\r
\r
- /* Send an empty packet to acknowedge the command */
\r
+ /* Acknowledge status stage */
\r
+ while (!(Endpoint_IsSetupINReady()));
\r
Endpoint_ClearSetupIN();
\r
}
\r
\r
Endpoint_ClearSetupIN();
\r
}
\r
\r
@@
-258,7
+261,8
@@
EVENT_HANDLER(USB_UnhandledControlPacket)
/* Get idle period in MSB */
\r
IdleCount = (wValue >> 8);
\r
\r
/* Get idle period in MSB */
\r
IdleCount = (wValue >> 8);
\r
\r
- /* Send an empty packet to acknowedge the command */
\r
+ /* Acknowledge status stage */
\r
+ while (!(Endpoint_IsSetupINReady()));
\r
Endpoint_ClearSetupIN();
\r
}
\r
\r
Endpoint_ClearSetupIN();
\r
}
\r
\r
@@
-273,6
+277,10
@@
EVENT_HANDLER(USB_UnhandledControlPacket)
\r
/* Send the flag to the host */
\r
Endpoint_ClearSetupIN();
\r
\r
/* Send the flag to the host */
\r
Endpoint_ClearSetupIN();
\r
+
\r
+ /* Acknowledge status stage */
\r
+ while (!(Endpoint_IsSetupOUTReceived()));
\r
+ Endpoint_ClearSetupOUT();
\r
}
\r
\r
break;
\r
}
\r
\r
break;
\r