projects
/
pub
/
USBasp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added beginnings of a new AVRISP-MKII clone project.
[pub/USBasp.git]
/
Demos
/
Device
/
LowLevel
/
DualCDC
/
DualCDC.c
diff --git
a/Demos/Device/LowLevel/DualCDC/DualCDC.c
b/Demos/Device/LowLevel/DualCDC/DualCDC.c
index
654ce86
..
efbecd6
100644
(file)
--- a/
Demos/Device/LowLevel/DualCDC/DualCDC.c
+++ b/
Demos/Device/LowLevel/DualCDC/DualCDC.c
@@
-97,7
+97,7
@@
void SetupHardware(void)
/** Event handler for the USB_Connect event. This indicates that the device is enumerating via the status LEDs and
\r
* starts the library USB task to begin the enumeration and USB management process.
\r
*/
\r
/** Event handler for the USB_Connect event. This indicates that the device is enumerating via the status LEDs and
\r
* starts the library USB task to begin the enumeration and USB management process.
\r
*/
\r
-void EVENT_USB_Connect(void)
\r
+void EVENT_USB_
Device_
Connect(void)
\r
{
\r
/* Indicate USB enumerating */
\r
LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING);
\r
{
\r
/* Indicate USB enumerating */
\r
LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING);
\r
@@
-106,7
+106,7
@@
void EVENT_USB_Connect(void)
/** Event handler for the USB_Disconnect event. This indicates that the device is no longer connected to a host via
\r
* the status LEDs and stops the USB management and CDC management tasks.
\r
*/
\r
/** Event handler for the USB_Disconnect event. This indicates that the device is no longer connected to a host via
\r
* the status LEDs and stops the USB management and CDC management tasks.
\r
*/
\r
-void EVENT_USB_Disconnect(void)
\r
+void EVENT_USB_D
evice_D
isconnect(void)
\r
{
\r
/* Indicate USB not ready */
\r
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
\r
{
\r
/* Indicate USB not ready */
\r
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
\r
@@
-115,7
+115,7
@@
void EVENT_USB_Disconnect(void)
/** Event handler for the USB_ConfigurationChanged event. This is fired when the host set the current configuration
\r
* of the USB device after enumeration - the device endpoints are configured and the CDC management tasks are started.
\r
*/
\r
/** Event handler for the USB_ConfigurationChanged event. This is fired when the host set the current configuration
\r
* of the USB device after enumeration - the device endpoints are configured and the CDC management tasks are started.
\r
*/
\r
-void EVENT_USB_ConfigurationChanged(void)
\r
+void EVENT_USB_
Device_
ConfigurationChanged(void)
\r
{
\r
/* Indicate USB connected and ready */
\r
LEDs_SetAllLEDs(LEDMASK_USB_READY);
\r
{
\r
/* Indicate USB connected and ready */
\r
LEDs_SetAllLEDs(LEDMASK_USB_READY);
\r
@@
-163,13
+163,17
@@
void EVENT_USB_ConfigurationChanged(void)
{
\r
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
\r
}
\r
{
\r
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
\r
}
\r
+
\r
+ /* Reset line encoding baud rates so that the host knows to send new values */
\r
+ LineEncoding1.BaudRateBPS = 0;
\r
+ LineEncoding2.BaudRateBPS = 0;
\r
}
\r
\r
}
\r
\r
-/** Event handler for the USB_UnhandledControl
Packe
t event. This is used to catch standard and class specific
\r
+/** Event handler for the USB_UnhandledControl
Reques
t event. This is used to catch standard and class specific
\r
* control requests that are not handled internally by the USB library (including the CDC control commands,
\r
* which are all issued via the control endpoint), so that they can be handled appropriately for the application.
\r
*/
\r
* control requests that are not handled internally by the USB library (including the CDC control commands,
\r
* which are all issued via the control endpoint), so that they can be handled appropriately for the application.
\r
*/
\r
-void EVENT_USB_
UnhandledControlPacke
t(void)
\r
+void EVENT_USB_
Device_UnhandledControlReques
t(void)
\r
{
\r
/* Determine which interface's Line Coding data is being set from the wIndex parameter */
\r
uint8_t* LineEncodingData = (USB_ControlRequest.wIndex == 0) ? (uint8_t*)&LineEncoding1 : (uint8_t*)&LineEncoding2;
\r
{
\r
/* Determine which interface's Line Coding data is being set from the wIndex parameter */
\r
uint8_t* LineEncodingData = (USB_ControlRequest.wIndex == 0) ? (uint8_t*)&LineEncoding1 : (uint8_t*)&LineEncoding2;
\r
@@
-226,14
+230,6
@@
void CDC1_Task(void)
char* ReportString = NULL;
\r
uint8_t JoyStatus_LCL = Joystick_GetStatus();
\r
static bool ActionSent = false;
\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
/* Device must be connected and configured for the task to run */
\r
if (USB_DeviceState != DEVICE_STATE_Configured)
\r
@@
-241,22
+237,20
@@
void CDC1_Task(void)
\r
/* Determine if a joystick action has occurred */
\r
if (JoyStatus_LCL & JOY_UP)
\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
else if (JoyStatus_LCL & JOY_DOWN)
\r
- ReportString =
JoystickStrings[1]
;
\r
+ ReportString =
"Joystick Down\r\n"
;
\r
else if (JoyStatus_LCL & JOY_LEFT)
\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
else if (JoyStatus_LCL & JOY_RIGHT)
\r
- ReportString =
JoystickStrings[3]
;
\r
+ ReportString =
"Joystick Right\r\n"
;
\r
else if (JoyStatus_LCL & JOY_PRESS)
\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
\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
{
\r
ActionSent = true;
\r
\r
@@
-270,11
+264,7
@@
void CDC1_Task(void)
Endpoint_ClearIN();
\r
\r
/* Wait until the endpoint is ready for another packet */
\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
\r
/* Send an empty packet to ensure that the host does not buffer data sent to it */
\r
Endpoint_ClearIN();
\r
@@
-325,11
+315,7
@@
void CDC2_Task(void)
Endpoint_ClearIN();
\r
\r
/* Wait until the endpoint is ready for the next packet */
\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
\r
/* Send an empty packet to prevent host buffering */
\r
Endpoint_ClearIN();
\r