File tree Expand file tree Collapse file tree 2 files changed +13
-10
lines changed Expand file tree Collapse file tree 2 files changed +13
-10
lines changed Original file line number Diff line number Diff line change @@ -393,9 +393,7 @@ class DoubleBufferedEPOutHandler : public EPHandler {
393
393
}
394
394
release ();
395
395
}
396
- if (usbd.epBank0IsTransferComplete (ep) || usbd.epBank1IsTransferComplete (ep)) {
397
- usbd.epAckPendingInterrupts (ep);
398
- }
396
+ usbd.epAckPendingInterrupts (ep);
399
397
}
400
398
401
399
// Returns how many bytes are stored in the buffers
Original file line number Diff line number Diff line change @@ -300,11 +300,9 @@ void USBDeviceClass::handleEndpoint(uint8_t ep)
300
300
#if defined(CDC_ENABLED)
301
301
if (ep == CDC_ENDPOINT_IN || ep == CDC_ENDPOINT_ACM)
302
302
{
303
- if (usbd.epBank0IsTransferComplete (ep) || usbd.epBank1IsTransferComplete (ep)) {
304
- // NAK on endpoint IN, the bank is not yet filled in.
305
- usbd.epBank1ResetReady (ep);
306
- usbd.epBank1AckTransferComplete (ep);
307
- }
303
+ // NAK on endpoint IN, the bank is not yet filled in.
304
+ usbd.epBank1ResetReady (ep);
305
+ usbd.epBank1AckTransferComplete (ep);
308
306
return ;
309
307
}
310
308
#endif
@@ -1012,11 +1010,18 @@ void USBDeviceClass::ISRHandler()
1012
1010
}
1013
1011
1014
1012
} // end Received Setup handler
1015
- // usbd.epAckPendingInterrupts(0);
1016
1013
1014
+ uint8_t ept_int = usbd.epInterruptSummary () & 0xFE ; // Remove endpoint number 0 (setup)
1017
1015
for (int ep = 1 ; ep < USB_EPT_NUM; ep++) {
1016
+ // Check if endpoint has a pending interrupt
1017
+ if ((ept_int & (1 << ep)) == 0 ) {
1018
+ continue ;
1019
+ }
1020
+
1018
1021
// Endpoint Transfer Complete (0/1) Interrupt
1019
- if (usbd.epHasPendingInterrupts (ep)) {
1022
+ if (usbd.epBank0IsTransferComplete (ep) ||
1023
+ usbd.epBank1IsTransferComplete (ep))
1024
+ {
1020
1025
if (epHandlers[ep]) {
1021
1026
epHandlers[ep]->handleEndpoint ();
1022
1027
} else {
You can’t perform that action at this time.
0 commit comments