From a67bd74e3e8aad87dcee8cf0c0eaaccbe7d00552 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Thu, 4 Jun 2009 02:55:30 +0000 Subject: Minor documentation page updates. Redocumented all device demos, now that they have changed over to the new USB class drivers. Added C linkage to class drivers for C++ support. Added prefixes to most of the class driver constants to prevent name clashes. --- Demos/Device/DualCDC/DualCDC.c | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) (limited to 'Demos/Device/DualCDC/DualCDC.c') diff --git a/Demos/Device/DualCDC/DualCDC.c b/Demos/Device/DualCDC/DualCDC.c index 26947f433..216902c67 100644 --- a/Demos/Device/DualCDC/DualCDC.c +++ b/Demos/Device/DualCDC/DualCDC.c @@ -27,9 +27,20 @@ arising out of or in connection with the use or performance of this software. */ - + +/** \file + * + * Main source file for the DualCDC demo. This file contains the main tasks of + * the demo and is responsible for the initial application hardware configuration. + */ + #include "DualCDC.h" +/** LUFA CDC Class driver interface configuration and state information. This structure is + * passed to all CDC Class driver functions, so that multiple instances of the same class + * within a device can be differentiated from one another. This is for the first CDC interface, + * which sends strings to the host for each joystick movement. + */ USB_ClassInfo_CDC_t VirtualSerial1_CDC_Interface = { .ControlInterfaceNumber = 0, @@ -44,9 +55,14 @@ USB_ClassInfo_CDC_t VirtualSerial1_CDC_Interface = .NotificationEndpointSize = CDC_NOTIFICATION_EPSIZE, }; +/** LUFA CDC Class driver interface configuration and state information. This structure is + * passed to all CDC Class driver functions, so that multiple instances of the same class + * within a device can be differentiated from one another. This is for the second CDC interface, + * which echos back all received data from the host. + */ USB_ClassInfo_CDC_t VirtualSerial2_CDC_Interface = { - .ControlInterfaceNumber = 0, + .ControlInterfaceNumber = 2, .DataINEndpointNumber = CDC2_TX_EPNUM, .DataINEndpointSize = CDC_TXRX_EPSIZE, @@ -58,6 +74,9 @@ USB_ClassInfo_CDC_t VirtualSerial2_CDC_Interface = .NotificationEndpointSize = CDC_NOTIFICATION_EPSIZE, }; +/** Main program entry point. This routine contains the overall program flow, including initial + * setup of all components and the main program loop. + */ int main(void) { SetupHardware(); @@ -68,10 +87,12 @@ int main(void) { CheckJoystickMovement(); + /* Discard all received data on the first CDC interface */ uint16_t BytesToDiscard = USB_CDC_BytesReceived(&VirtualSerial1_CDC_Interface); while (BytesToDiscard--) USB_CDC_ReceiveByte(&VirtualSerial1_CDC_Interface); + /* Echo all received data on the second CDC interface */ uint16_t BytesToEcho = USB_CDC_BytesReceived(&VirtualSerial2_CDC_Interface); while (BytesToEcho--) USB_CDC_SendByte(&VirtualSerial2_CDC_Interface, USB_CDC_ReceiveByte(&VirtualSerial2_CDC_Interface)); @@ -82,6 +103,7 @@ int main(void) } } +/** Configures the board hardware and chip peripherals for the demo's functionality. */ void SetupHardware(void) { /* Disable watchdog if enabled by bootloader/fuses */ @@ -97,6 +119,9 @@ void SetupHardware(void) USB_Init(); } +/** Checks for changes in the position of the board joystick, sending strings to the host upon each change + * through the first of the CDC interfaces. + */ void CheckJoystickMovement(void) { uint8_t JoyStatus_LCL = Joystick_GetStatus(); @@ -133,16 +158,19 @@ void CheckJoystickMovement(void) } } +/** Event handler for the library USB Connection event. */ void EVENT_USB_Connect(void) { LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING); } +/** Event handler for the library USB Disconnection event. */ void EVENT_USB_Disconnect(void) { LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY); } +/** Event handler for the library USB Configuration Changed event. */ void EVENT_USB_ConfigurationChanged(void) { LEDs_SetAllLEDs(LEDMASK_USB_READY); @@ -154,6 +182,7 @@ void EVENT_USB_ConfigurationChanged(void) LEDs_SetAllLEDs(LEDMASK_USB_ERROR); } +/** Event handler for the library USB Unhandled Control Packet event. */ void EVENT_USB_UnhandledControlPacket(void) { USB_CDC_ProcessControlPacket(&VirtualSerial1_CDC_Interface); -- cgit v1.2.3