diff --git a/Demos/KeyboardFullInt/KeyboardFullInt.c b/Demos/KeyboardFullInt/KeyboardFullInt.c index 7e90b5ff28..44f9830591 100644 --- a/Demos/KeyboardFullInt/KeyboardFullInt.c +++ b/Demos/KeyboardFullInt/KeyboardFullInt.c @@ -404,6 +404,15 @@ ISR(ENDPOINT_PIPE_vect, ISR_BLOCK) USB_KeyboardReport_Data_t KeyboardReportData; bool SendReport; + /* Select the Keyboard Report Endpoint */ + Endpoint_SelectEndpoint(KEYBOARD_EPNUM); + + /* Clear the endpoint IN interrupt flag */ + USB_INT_Clear(ENDPOINT_INT_IN); + + /* Clear the Keyboard Report endpoint interrupt */ + Endpoint_ClearEndpointInterrupt(KEYBOARD_EPNUM); + /* Create the next keyboard report for transmission to the host */ SendReport = GetNextReport(&KeyboardReportData); @@ -420,21 +429,12 @@ ISR(ENDPOINT_PIPE_vect, ISR_BLOCK) /* Check to see if a report should be issued */ if (SendReport) { - /* Select the Keyboard Report Endpoint */ - Endpoint_SelectEndpoint(KEYBOARD_EPNUM); - - /* Clear the endpoint IN interrupt flag */ - USB_INT_Clear(ENDPOINT_INT_IN); - - /* Clear the Keyboard Report endpoint interrupt */ - Endpoint_ClearEndpointInterrupt(KEYBOARD_EPNUM); - /* Write Keyboard Report Data */ Endpoint_Write_Stream_LE(&KeyboardReportData, sizeof(KeyboardReportData)); - - /* Finalize the stream transfer to send the last packet */ - Endpoint_ClearCurrentBank(); } + + /* Finalize the stream transfer to send the last packet */ + Endpoint_ClearCurrentBank(); } /* Check if Keyboard LED status Endpoint has interrupted */ diff --git a/Demos/KeyboardViaInt/KeyboardViaInt.c b/Demos/KeyboardViaInt/KeyboardViaInt.c index 7f6fcd8cdb..7916506755 100644 --- a/Demos/KeyboardViaInt/KeyboardViaInt.c +++ b/Demos/KeyboardViaInt/KeyboardViaInt.c @@ -391,7 +391,16 @@ ISR(ENDPOINT_PIPE_vect, ISR_BLOCK) { USB_KeyboardReport_Data_t KeyboardReportData; bool SendReport; - + + /* Select the Keyboard Report Endpoint */ + Endpoint_SelectEndpoint(KEYBOARD_EPNUM); + + /* Clear the endpoint IN interrupt flag */ + USB_INT_Clear(ENDPOINT_INT_IN); + + /* Clear the Keyboard Report endpoint interrupt */ + Endpoint_ClearEndpointInterrupt(KEYBOARD_EPNUM); + /* Create the next keyboard report for transmission to the host */ SendReport = GetNextReport(&KeyboardReportData); @@ -408,15 +417,6 @@ ISR(ENDPOINT_PIPE_vect, ISR_BLOCK) /* Check to see if a report should be issued */ if (SendReport) { - /* Select the Keyboard Report Endpoint */ - Endpoint_SelectEndpoint(KEYBOARD_EPNUM); - - /* Clear the endpoint IN interrupt flag */ - USB_INT_Clear(ENDPOINT_INT_IN); - - /* Clear the Keyboard Report endpoint interrupt */ - Endpoint_ClearEndpointInterrupt(KEYBOARD_EPNUM); - /* Write Keyboard Report Data */ Endpoint_Write_Stream_LE(&KeyboardReportData, sizeof(KeyboardReportData)); } diff --git a/Demos/MouseFullInt/MouseFullInt.c b/Demos/MouseFullInt/MouseFullInt.c index c21959a2c8..28267a14f6 100644 --- a/Demos/MouseFullInt/MouseFullInt.c +++ b/Demos/MouseFullInt/MouseFullInt.c @@ -358,6 +358,15 @@ ISR(ENDPOINT_PIPE_vect, ISR_BLOCK) USB_MouseReport_Data_t MouseReportData; bool SendReport = true; + /* Select the Mouse Report Endpoint */ + Endpoint_SelectEndpoint(MOUSE_EPNUM); + + /* Clear the endpoint IN interrupt flag */ + USB_INT_Clear(ENDPOINT_INT_IN); + + /* Clear the Mouse Report endpoint interrupt and select the endpoint */ + Endpoint_ClearEndpointInterrupt(MOUSE_EPNUM); + /* Create the next mouse report for transmission to the host */ GetNextReport(&MouseReportData); @@ -380,20 +389,11 @@ ISR(ENDPOINT_PIPE_vect, ISR_BLOCK) /* Check to see if a report should be issued */ if (SendReport) { - /* Select the Mouse Report Endpoint */ - Endpoint_SelectEndpoint(MOUSE_EPNUM); - - /* Clear the endpoint IN interrupt flag */ - USB_INT_Clear(ENDPOINT_INT_IN); - - /* Clear the Mouse Report endpoint interrupt and select the endpoint */ - Endpoint_ClearEndpointInterrupt(MOUSE_EPNUM); - /* Write Mouse Report Data */ Endpoint_Write_Stream_LE(&MouseReportData, sizeof(MouseReportData)); - - /* Finalize the stream transfer to send the last packet */ - Endpoint_ClearCurrentBank(); } + + /* Finalize the stream transfer to send the last packet */ + Endpoint_ClearCurrentBank(); } } diff --git a/Demos/MouseViaInt/MouseViaInt.c b/Demos/MouseViaInt/MouseViaInt.c index 77e4c565e8..a4b863c133 100644 --- a/Demos/MouseViaInt/MouseViaInt.c +++ b/Demos/MouseViaInt/MouseViaInt.c @@ -345,6 +345,15 @@ ISR(ENDPOINT_PIPE_vect, ISR_BLOCK) USB_MouseReport_Data_t MouseReportData; bool SendReport = true; + /* Select the Mouse Report Endpoint */ + Endpoint_SelectEndpoint(MOUSE_EPNUM); + + /* Clear the endpoint IN interrupt flag */ + USB_INT_Clear(ENDPOINT_INT_IN); + + /* Clear the Mouse Report endpoint interrupt and select the endpoint */ + Endpoint_ClearEndpointInterrupt(MOUSE_EPNUM); + /* Create the next mouse report for transmission to the host */ GetNextReport(&MouseReportData); @@ -367,15 +376,6 @@ ISR(ENDPOINT_PIPE_vect, ISR_BLOCK) /* Check to see if a report should be issued */ if (SendReport) { - /* Select the Mouse Report Endpoint */ - Endpoint_SelectEndpoint(MOUSE_EPNUM); - - /* Clear the endpoint IN interrupt flag */ - USB_INT_Clear(ENDPOINT_INT_IN); - - /* Clear the Mouse Report endpoint interrupt and select the endpoint */ - Endpoint_ClearEndpointInterrupt(MOUSE_EPNUM); - /* Write Mouse Report Data */ Endpoint_Write_Stream_LE(&MouseReportData, sizeof(MouseReportData)); }