Fri, 17 Nov 2017 10:13:31 +0100
proper configuration, homing and planner optimization
2 | 1 | /* |
2 | LUFA Library | |
3 | Copyright (C) Dean Camera, 2010. | |
4 | ||
5 | dean [at] fourwalledcubicle [dot] com | |
6 | www.fourwalledcubicle.com | |
7 | */ | |
8 | ||
9 | /* | |
10 | Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) | |
11 | ||
12 | Permission to use, copy, modify, distribute, and sell this | |
13 | software and its documentation for any purpose is hereby granted | |
14 | without fee, provided that the above copyright notice appear in | |
15 | all copies and that both that the copyright notice and this | |
16 | permission notice and warranty disclaimer appear in supporting | |
17 | documentation, and that the name of the author not be used in | |
18 | advertising or publicity pertaining to distribution of the | |
19 | software without specific, written prior permission. | |
20 | ||
21 | The author disclaim all warranties with regard to this | |
22 | software, including all implied warranties of merchantability | |
23 | and fitness. In no event shall the author be liable for any | |
24 | special, indirect or consequential damages or any damages | |
25 | whatsoever resulting from loss of use, data or profits, whether | |
26 | in an action of contract, negligence or other tortious action, | |
27 | arising out of or in connection with the use or performance of | |
28 | this software. | |
29 | */ | |
30 | ||
31 | /** \file | |
32 | * | |
33 | * Header file for Descriptors.c. | |
34 | */ | |
35 | ||
36 | #ifndef _DESCRIPTORS_H_ | |
37 | #define _DESCRIPTORS_H_ | |
38 | ||
39 | /* Includes: */ | |
40 | #include <avr/pgmspace.h> | |
41 | ||
42 | #include <LUFA/Drivers/USB/USB.h> | |
43 | #include <LUFA/Drivers/USB/Class/CDC.h> | |
44 | ||
45 | /* Product-specific definitions: */ | |
46 | #define ARDUINO_UNO_PID 0x0001 | |
47 | #define ARDUINO_MEGA2560_PID 0x0010 | |
48 | ||
49 | /* Macros: */ | |
50 | /** Endpoint number of the CDC device-to-host notification IN endpoint. */ | |
51 | #define CDC_NOTIFICATION_EPNUM 2 | |
52 | ||
53 | /** Endpoint number of the CDC device-to-host data IN endpoint. */ | |
54 | #define CDC_TX_EPNUM 3 | |
55 | ||
56 | /** Endpoint number of the CDC host-to-device data OUT endpoint. */ | |
57 | #define CDC_RX_EPNUM 4 | |
58 | ||
59 | /** Size in bytes of the CDC device-to-host notification IN endpoint. */ | |
60 | #define CDC_NOTIFICATION_EPSIZE 8 | |
61 | ||
62 | /** Size in bytes of the CDC data IN and OUT endpoints. */ | |
63 | #define CDC_TXRX_EPSIZE 64 | |
64 | ||
65 | /* Type Defines: */ | |
66 | /** Type define for the device configuration descriptor structure. This must be defined in the | |
67 | * application code, as the configuration descriptor contains several sub-descriptors which | |
68 | * vary between devices, and which describe the device's usage to the host. | |
69 | */ | |
70 | typedef struct | |
71 | { | |
72 | USB_Descriptor_Configuration_Header_t Config; | |
73 | USB_Descriptor_Interface_t CDC_CCI_Interface; | |
74 | CDC_FUNCTIONAL_DESCRIPTOR(2) CDC_Functional_IntHeader; | |
75 | CDC_FUNCTIONAL_DESCRIPTOR(1) CDC_Functional_AbstractControlManagement; | |
76 | CDC_FUNCTIONAL_DESCRIPTOR(2) CDC_Functional_Union; | |
77 | USB_Descriptor_Endpoint_t CDC_NotificationEndpoint; | |
78 | USB_Descriptor_Interface_t CDC_DCI_Interface; | |
79 | USB_Descriptor_Endpoint_t CDC_DataOutEndpoint; | |
80 | USB_Descriptor_Endpoint_t CDC_DataInEndpoint; | |
81 | } USB_Descriptor_Configuration_t; | |
82 | ||
83 | /* Function Prototypes: */ | |
84 | uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, | |
85 | const uint8_t wIndex, | |
86 | void** const DescriptorAddress) ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3); | |
87 | ||
88 | #endif |