diff options
Diffstat (limited to 'LUFA/Drivers/USB/LowLevel')
| -rw-r--r-- | LUFA/Drivers/USB/LowLevel/Endpoint.h | 10 | ||||
| -rw-r--r-- | LUFA/Drivers/USB/LowLevel/Pipe.h | 15 | 
2 files changed, 16 insertions, 9 deletions
diff --git a/LUFA/Drivers/USB/LowLevel/Endpoint.h b/LUFA/Drivers/USB/LowLevel/Endpoint.h index 2223f0ca4..a7a282258 100644 --- a/LUFA/Drivers/USB/LowLevel/Endpoint.h +++ b/LUFA/Drivers/USB/LowLevel/Endpoint.h @@ -416,9 +416,9 @@  				#define Endpoint_HasEndpointInterrupted(n)    ((UEINT & (1 << n)) ? true : false)
 -				#define Endpoint_IsINReady()                 ((UEINTX & (1 << TXINI))  ? true : false)
 +				#define Endpoint_IsINReady()                  ((UEINTX & (1 << TXINI))  ? true : false)
 -				#define Endpoint_IsOUTReceived()             ((UEINTX & (1 << RXOUTI)) ? true : false)
 +				#define Endpoint_IsOUTReceived()              ((UEINTX & (1 << RXOUTI)) ? true : false)
  				#define Endpoint_IsSETUPReceived()            ((UEINTX & (1 << RXSTPI)) ? true : false)
 @@ -428,9 +428,11 @@  				#define Endpoint_ClearControlOUT()            MACROS{ UEINTX &= ~(1 << RXOUTI); }MACROE
 -				#define Endpoint_ClearIN()                    MACROS{ UEINTX &= ~(1 << TXINI); UEINTX &= ~(1 << FIFOCON); }MACROE
 +				#define Endpoint_ClearIN()                    MACROS{ uint8_t Temp = UEINTX; UEINTX = (Temp & ~(1 << TXINI)); \
 +				                                                      UEINTX = (Temp & ~(1 << FIFOCON)); }MACROE
 -				#define Endpoint_ClearOUT()                   MACROS{ UEINTX &= ~(1 << RXOUTI); UEINTX &= ~(1 << FIFOCON); }MACROE
 +				#define Endpoint_ClearOUT()                   MACROS{ uint8_t Temp = UEINTX; UEINTX = (Temp & ~(1 << RXOUTI)); \
 +				                                                      UEINTX = (Temp & ~(1 << FIFOCON)); }MACROE
  				#define Endpoint_StallTransaction()           MACROS{ UECONX |= (1 << STALLRQ); }MACROE
 diff --git a/LUFA/Drivers/USB/LowLevel/Pipe.h b/LUFA/Drivers/USB/LowLevel/Pipe.h index 253ce2a93..9d8dded04 100644 --- a/LUFA/Drivers/USB/LowLevel/Pipe.h +++ b/LUFA/Drivers/USB/LowLevel/Pipe.h @@ -553,15 +553,20 @@  				#define Pipe_IsSETUPSent()             ((UPINTX & (1 << TXSTPI)) ? true : false)
 -				#define Pipe_ClearIN()                 MACROS{ UPINTX &= ~(1 << RXINI); UPINTX &= ~(1 << FIFOCON); }MACROE
 +				#define Pipe_ClearIN()                 MACROS{ uint8_t Temp = UPINTX; UPINTX = (Temp & ~(1 << RXINI)); \
 +				                                               UPINTX = (Temp & ~(1 << FIFOCON)); }MACROE
 -				#define Pipe_ClearControlIN()          MACROS{ UPINTX &= ~(1 << RXINI); UPINTX &= ~(1 << FIFOCON); }MACROE
 +				#define Pipe_ClearControlIN()          MACROS{ uint8_t Temp = UPINTX; UPINTX = (Temp & ~(1 << RXINI)); \
 +				                                               UPINTX = (Temp & ~(1 << FIFOCON)); }MACROE
 -				#define Pipe_ClearOUT()                MACROS{ UPINTX &= ~(1 << TXOUTI); UPINTX &= ~(1 << FIFOCON); }MACROE
 +				#define Pipe_ClearOUT()                MACROS{ uint8_t Temp = UPINTX; UPINTX = (Temp & ~(1 << TXOUTI)); \
 +				                                               UPINTX = (Temp & ~(1 << FIFOCON)); }MACROE
 -				#define Pipe_ClearControlOUT()         MACROS{ UPINTX &= ~(1 << TXOUTI); UPINTX &= ~(1 << FIFOCON); }MACROE
 +				#define Pipe_ClearControlOUT()         MACROS{ uint8_t Temp = UPINTX; UPINTX = (Temp & ~(1 << TXOUTI)); \
 +				                                               UPINTX = (Temp & ~(1 << FIFOCON)); }MACROE
 -				#define Pipe_ClearControlSETUP()       MACROS{ UPINTX &= ~(1 << TXSTPI); UPINTX &= ~(1 << FIFOCON); }MACROE        
 +				#define Pipe_ClearControlSETUP()       MACROS{ uint8_t Temp = UPINTX; UPINTX = (Temp & ~(1 << TXSTPI)); \
 +				                                               UPINTX = (Temp & ~(1 << FIFOCON)); }MACROE
  				#define Pipe_IsNAKReceived()           ((UPINTX & (1 << NAKEDI)) ? true : false)
  | 
