Rename AVR32CLK_*() clock management functions to UC3CLK_*() to be in line with the...
[pub/USBasp.git] / Demos / Host / ClassDriver / VirtualSerialHost / VirtualSerialHost.c
index b113530..abbd2be 100644 (file)
@@ -7,7 +7,7 @@
 */
 
 /*
 */
 
 /*
-  Copyright 2011  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2012  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
@@ -44,14 +44,21 @@ USB_ClassInfo_CDC_Host_t VirtualSerial_CDC_Interface =
        {
                .Config =
                        {
        {
                .Config =
                        {
-                               .DataINPipeNumber           = 1,
-                               .DataINPipeDoubleBank       = false,
-
-                               .DataOUTPipeNumber          = 2,
-                               .DataOUTPipeDoubleBank      = false,
-
-                               .NotificationPipeNumber     = 3,
-                               .NotificationPipeDoubleBank = false,
+                               .DataINPipe             =
+                                       {
+                                               .Address        = (PIPE_DIR_IN  | 1),
+                                               .Banks          = 1,
+                                       },
+                               .DataOUTPipe            =
+                                       {
+                                               .Address        = (PIPE_DIR_OUT | 2),
+                                               .Banks          = 1,
+                                       },
+                               .NotificationPipe       =
+                                       {
+                                               .Address        = (PIPE_DIR_IN  | 3),
+                                               .Banks          = 1,
+                                       },
                        },
        };
 
                        },
        };
 
@@ -66,7 +73,7 @@ int main(void)
        puts_P(PSTR(ESC_FG_CYAN "CDC Host Demo running.\r\n" ESC_FG_WHITE));
 
        LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
        puts_P(PSTR(ESC_FG_CYAN "CDC Host Demo running.\r\n" ESC_FG_WHITE));
 
        LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
-       sei();
+       GlobalInterruptEnable();
 
        for (;;)
        {
 
        for (;;)
        {
@@ -163,6 +170,18 @@ void EVENT_USB_Host_DeviceEnumerationComplete(void)
                LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
                return;
        }
                LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
                return;
        }
+       
+       VirtualSerial_CDC_Interface.State.LineEncoding.BaudRateBPS = 9600;
+       VirtualSerial_CDC_Interface.State.LineEncoding.CharFormat  = CDC_LINEENCODING_OneStopBit;
+       VirtualSerial_CDC_Interface.State.LineEncoding.ParityType  = CDC_PARITY_None;
+       VirtualSerial_CDC_Interface.State.LineEncoding.DataBits    = 8;
+       
+       if (CDC_Host_SetLineEncoding(&VirtualSerial_CDC_Interface))
+       {
+               puts_P(PSTR("Error Setting Device Line Encoding.\r\n"));
+               LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
+               return; 
+       }
 
        puts_P(PSTR("CDC Device Enumerated.\r\n"));
        LEDs_SetAllLEDs(LEDMASK_USB_READY);
 
        puts_P(PSTR("CDC Device Enumerated.\r\n"));
        LEDs_SetAllLEDs(LEDMASK_USB_READY);