\r
#include "DualCDC.h"\r
\r
-/* Globals: */\r
/** Contains the current baud rate and other settings of the first virtual serial port. While this demo does not use\r
* the physical USART and thus does not use these settings, they must still be retained and returned to the host\r
* upon request or the host will assume the device is non-functional.\r
.ParityType = Parity_None,\r
.DataBits = 8 };\r
\r
+\r
/** Main program entry point. This routine configures the hardware required by the application, then\r
- * starts the scheduler to run the application tasks.\r
+ * enters a loop to run the application tasks in sequence.\r
*/\r
int main(void)\r
{\r
char* ReportString = NULL;\r
uint8_t JoyStatus_LCL = Joystick_GetStatus();\r
static bool ActionSent = false;\r
- char* JoystickStrings[] =\r
- {\r
- "Joystick Up\r\n",\r
- "Joystick Down\r\n",\r
- "Joystick Left\r\n",\r
- "Joystick Right\r\n",\r
- "Joystick Pressed\r\n",\r
- };\r
\r
/* Device must be connected and configured for the task to run */\r
if (USB_DeviceState != DEVICE_STATE_Configured)\r
\r
/* Determine if a joystick action has occurred */\r
if (JoyStatus_LCL & JOY_UP)\r
- ReportString = JoystickStrings[0];\r
+ ReportString = "Joystick Up\r\n";\r
else if (JoyStatus_LCL & JOY_DOWN)\r
- ReportString = JoystickStrings[1];\r
+ ReportString = "Joystick Down\r\n";\r
else if (JoyStatus_LCL & JOY_LEFT)\r
- ReportString = JoystickStrings[2];\r
+ ReportString = "Joystick Left\r\n";\r
else if (JoyStatus_LCL & JOY_RIGHT)\r
- ReportString = JoystickStrings[3];\r
+ ReportString = "Joystick Right\r\n";\r
else if (JoyStatus_LCL & JOY_PRESS)\r
- ReportString = JoystickStrings[4];\r
+ ReportString = "Joystick Pressed\r\n";\r
+ else\r
+ ActionSent = false;\r
\r
/* Flag management - Only allow one string to be sent per action */\r
- if (ReportString == NULL)\r
- {\r
- ActionSent = false;\r
- }\r
- else if ((ActionSent == false) && LineEncoding1.BaudRateBPS)\r
+ if ((ReportString != NULL) && (ActionSent == false) && LineEncoding1.BaudRateBPS)\r
{\r
ActionSent = true;\r
\r
Endpoint_ClearIN();\r
\r
/* Wait until the endpoint is ready for another packet */\r
- while (!(Endpoint_IsINReady()))\r
- {\r
- if (USB_DeviceState == DEVICE_STATE_Unattached)\r
- return;\r
- }\r
+ Endpoint_WaitUntilReady();\r
\r
/* Send an empty packet to ensure that the host does not buffer data sent to it */\r
Endpoint_ClearIN();\r
Endpoint_ClearIN();\r
\r
/* Wait until the endpoint is ready for the next packet */\r
- while (!(Endpoint_IsINReady()))\r
- {\r
- if (USB_DeviceState == DEVICE_STATE_Unattached)\r
- return;\r
- }\r
+ Endpoint_WaitUntilReady();\r
\r
/* Send an empty packet to prevent host buffering */\r
Endpoint_ClearIN();\r