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 signature reported in the CDC class bootloader for the ATMEGA32U2.
[pub/USBasp.git]
/
Demos
/
Device
/
LowLevel
/
Keyboard
/
Keyboard.c
diff --git
a/Demos/Device/LowLevel/Keyboard/Keyboard.c
b/Demos/Device/LowLevel/Keyboard/Keyboard.c
index
12bf5ba
..
b4d4c21
100644
(file)
--- a/
Demos/Device/LowLevel/Keyboard/Keyboard.c
+++ b/
Demos/Device/LowLevel/Keyboard/Keyboard.c
@@
-143,15
+143,13
@@
void EVENT_USB_Device_UnhandledControlRequest(void)
{
USB_KeyboardReport_Data_t KeyboardReportData;
{
USB_KeyboardReport_Data_t KeyboardReportData;
- Endpoint_ClearSETUP();
-
/* Create the next keyboard report for transmission to the host */
CreateKeyboardReport(&KeyboardReportData);
/* Create the next keyboard report for transmission to the host */
CreateKeyboardReport(&KeyboardReportData);
+ Endpoint_ClearSETUP();
+
/* Write the report data to the control endpoint */
Endpoint_Write_Control_Stream_LE(&KeyboardReportData, sizeof(KeyboardReportData));
/* Write the report data to the control endpoint */
Endpoint_Write_Control_Stream_LE(&KeyboardReportData, sizeof(KeyboardReportData));
-
- /* Finalize the stream transfer to send the last packet or clear the host abort */
Endpoint_ClearOUT();
}
Endpoint_ClearOUT();
}
@@
-171,13
+169,11
@@
void EVENT_USB_Device_UnhandledControlRequest(void)
/* Read in the LED report from the host */
uint8_t LEDStatus = Endpoint_Read_Byte();
/* Read in the LED report from the host */
uint8_t LEDStatus = Endpoint_Read_Byte();
- /* Process the incoming LED report */
- ProcessLEDReport(LEDStatus);
-
- /* Clear the endpoint data */
Endpoint_ClearOUT();
Endpoint_ClearOUT();
-
Endpoint_ClearStatusStage();
Endpoint_ClearStatusStage();
+
+ /* Process the incoming LED report */
+ ProcessLEDReport(LEDStatus);
}
break;
}
break;
@@
-188,10
+184,8
@@
void EVENT_USB_Device_UnhandledControlRequest(void)
/* Write the current protocol flag to the host */
Endpoint_Write_Byte(UsingReportProtocol);
/* Write the current protocol flag to the host */
Endpoint_Write_Byte(UsingReportProtocol);
-
- /* Send the flag to the host */
- Endpoint_ClearIN();
+ Endpoint_ClearIN();
Endpoint_ClearStatusStage();
}
Endpoint_ClearStatusStage();
}
@@
-200,23
+194,21
@@
void EVENT_USB_Device_UnhandledControlRequest(void)
if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
{
Endpoint_ClearSETUP();
if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
{
Endpoint_ClearSETUP();
+ Endpoint_ClearStatusStage();
/* Set or clear the flag depending on what the host indicates that the current Protocol should be */
UsingReportProtocol = (USB_ControlRequest.wValue != 0);
/* Set or clear the flag depending on what the host indicates that the current Protocol should be */
UsingReportProtocol = (USB_ControlRequest.wValue != 0);
-
- Endpoint_ClearStatusStage();
}
break;
case REQ_SetIdle:
if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
{
}
break;
case REQ_SetIdle:
if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
{
- Endpoint_ClearSETUP();
-
+ Endpoint_ClearSETUP();
+ Endpoint_ClearStatusStage();
+
/* Get idle period in MSB, IdleCount must be multiplied by 4 to get number of milliseconds */
IdleCount = ((USB_ControlRequest.wValue & 0xFF00) >> 6);
/* Get idle period in MSB, IdleCount must be multiplied by 4 to get number of milliseconds */
IdleCount = ((USB_ControlRequest.wValue & 0xFF00) >> 6);
-
- Endpoint_ClearStatusStage();
}
break;
}
break;
@@
-226,11
+218,9
@@
void EVENT_USB_Device_UnhandledControlRequest(void)
Endpoint_ClearSETUP();
/* Write the current idle duration to the host, must be divided by 4 before sent to host */
Endpoint_ClearSETUP();
/* Write the current idle duration to the host, must be divided by 4 before sent to host */
- Endpoint_Write_Byte(IdleCount >> 2);
-
- /* Send the flag to the host */
- Endpoint_ClearIN();
+ Endpoint_Write_Byte(IdleCount >> 2);
+ Endpoint_ClearIN();
Endpoint_ClearStatusStage();
}
Endpoint_ClearStatusStage();
}