USB_MouseReport_Data_t MouseReport;\r
uint8_t LEDMask = LEDS_NO_LEDS;\r
\r
- /* Select the mouse report data in pipe */\r
- Pipe_SelectPipe(MOUSE_DATAPIPE);\r
+ /* Select mouse data pipe */\r
+ Pipe_SelectPipe(MOUSE_DATAPIPE); \r
+\r
+ #if !defined(INTERRUPT_DATA_PIPE)\r
+ /* Unfreeze mouse data pipe */\r
+ Pipe_Unfreeze();\r
+ #endif\r
\r
/* Ensure pipe contains data and is ready to be read before continuing */\r
if (!(Pipe_ReadWriteAllowed()))\r
- return;\r
+ {\r
+ #if !defined(INTERRUPT_DATA_PIPE)\r
+ /* Refreeze mouse data pipe */\r
+ Pipe_Freeze();\r
+ #endif\r
+\r
+ return;\r
+ }\r
\r
/* Read in mouse report data */\r
Pipe_Read_Stream_LE(&MouseReport, sizeof(MouseReport)); \r
printf_P(PSTR("dX:%2d dY:%2d Button:%d\r\n"), MouseReport.X,\r
MouseReport.Y,\r
MouseReport.Button);\r
+\r
+ #if !defined(INTERRUPT_DATA_PIPE)\r
+ /* Refreeze mouse data pipe */\r
+ Pipe_Freeze();\r
+ #endif\r
}\r
\r
/** Task to set the configuration of the attached device after it has been enumerated, and to read and process\r
break;\r
}\r
\r
+ #if defined(INTERRUPT_DATA_PIPE) \r
+ /* Select and unfreeze mouse data pipe */\r
+ Pipe_SelectPipe(MOUSE_DATAPIPE); \r
+ Pipe_Unfreeze();\r
+ #endif\r
+\r
puts_P(PSTR("Mouse Enumerated.\r\n"));\r
\r
USB_HostState = HOST_STATE_Ready;\r
break;\r
#if !defined(INTERRUPT_DATA_PIPE)\r
case HOST_STATE_Ready:\r
- /* Select and unfreeze mouse data pipe */\r
- Pipe_SelectPipe(MOUSE_DATAPIPE);\r
- Pipe_Unfreeze();\r
-\r
/* If a report has been received, read and process it */\r
- if (Pipe_ReadWriteAllowed())\r
- ReadNextReport();\r
+ ReadNextReport();\r
\r
- /* Freeze mouse data pipe */\r
- Pipe_Freeze();\r
break;\r
#endif\r
}\r