Add new ARCH option to the makefiles to (eventually) specify the target device archit...
authorDean Camera <dean@fourwalledcubicle.com>
Sat, 19 Feb 2011 18:37:22 +0000 (18:37 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Sat, 19 Feb 2011 18:37:22 +0000 (18:37 +0000)
200 files changed:
Bootloaders/CDC/makefile
Bootloaders/DFU/makefile
Bootloaders/HID/makefile
Demos/Device/ClassDriver/AudioInput/makefile
Demos/Device/ClassDriver/AudioOutput/makefile
Demos/Device/ClassDriver/DualVirtualSerial/makefile
Demos/Device/ClassDriver/GenericHID/makefile
Demos/Device/ClassDriver/Joystick/makefile
Demos/Device/ClassDriver/Keyboard/makefile
Demos/Device/ClassDriver/KeyboardMouse/makefile
Demos/Device/ClassDriver/KeyboardMouseMultiReport/makefile
Demos/Device/ClassDriver/MIDI/makefile
Demos/Device/ClassDriver/MassStorage/makefile
Demos/Device/ClassDriver/MassStorageKeyboard/makefile
Demos/Device/ClassDriver/Mouse/makefile
Demos/Device/ClassDriver/RNDISEthernet/makefile
Demos/Device/ClassDriver/VirtualSerial/makefile
Demos/Device/ClassDriver/VirtualSerialMouse/makefile
Demos/Device/Incomplete/Sideshow/makefile
Demos/Device/Incomplete/TestAndMeasurement/makefile
Demos/Device/LowLevel/AudioInput/makefile
Demos/Device/LowLevel/AudioOutput/makefile
Demos/Device/LowLevel/DualVirtualSerial/makefile
Demos/Device/LowLevel/GenericHID/makefile
Demos/Device/LowLevel/Joystick/makefile
Demos/Device/LowLevel/Keyboard/makefile
Demos/Device/LowLevel/KeyboardMouse/makefile
Demos/Device/LowLevel/MIDI/makefile
Demos/Device/LowLevel/MassStorage/makefile
Demos/Device/LowLevel/Mouse/makefile
Demos/Device/LowLevel/RNDISEthernet/makefile
Demos/Device/LowLevel/VirtualSerial/makefile
Demos/DualRole/ClassDriver/MouseHostDevice/makefile
Demos/Host/ClassDriver/JoystickHostWithParser/makefile
Demos/Host/ClassDriver/KeyboardHost/makefile
Demos/Host/ClassDriver/KeyboardHostWithParser/makefile
Demos/Host/ClassDriver/MIDIHost/makefile
Demos/Host/ClassDriver/MassStorageHost/makefile
Demos/Host/ClassDriver/MouseHost/makefile
Demos/Host/ClassDriver/MouseHostWithParser/makefile
Demos/Host/ClassDriver/PrinterHost/makefile
Demos/Host/ClassDriver/RNDISEthernetHost/makefile
Demos/Host/ClassDriver/StillImageHost/makefile
Demos/Host/ClassDriver/VirtualSerialHost/makefile
Demos/Host/Incomplete/BluetoothHost/makefile
Demos/Host/LowLevel/GenericHIDHost/makefile
Demos/Host/LowLevel/JoystickHostWithParser/makefile
Demos/Host/LowLevel/KeyboardHost/makefile
Demos/Host/LowLevel/KeyboardHostWithParser/makefile
Demos/Host/LowLevel/MIDIHost/makefile
Demos/Host/LowLevel/MassStorageHost/makefile
Demos/Host/LowLevel/MouseHost/makefile
Demos/Host/LowLevel/MouseHostWithParser/makefile
Demos/Host/LowLevel/PrinterHost/makefile
Demos/Host/LowLevel/RNDISEthernetHost/makefile
Demos/Host/LowLevel/StillImageHost/makefile
Demos/Host/LowLevel/VirtualSerialHost/makefile
LUFA.pnproj
LUFA/CodeTemplates/makefile_template
LUFA/Common/Architectures.h [new file with mode: 0644]
LUFA/Common/Attributes.h
LUFA/Common/BoardTypes.h
LUFA/Common/Common.h
LUFA/Drivers/Board/ADAFRUITU4/LEDs.h
LUFA/Drivers/Board/ATAVRUSBRF01/Buttons.h
LUFA/Drivers/Board/ATAVRUSBRF01/LEDs.h
LUFA/Drivers/Board/BENITO/Buttons.h
LUFA/Drivers/Board/BENITO/LEDs.h
LUFA/Drivers/Board/BLACKCAT/LEDs.h
LUFA/Drivers/Board/BUI/LEDs.h
LUFA/Drivers/Board/BUMBLEB/Buttons.h
LUFA/Drivers/Board/BUMBLEB/Joystick.h
LUFA/Drivers/Board/BUMBLEB/LEDs.h
LUFA/Drivers/Board/Buttons.h
LUFA/Drivers/Board/CULV3/Buttons.h
LUFA/Drivers/Board/CULV3/LEDs.h
LUFA/Drivers/Board/Dataflash.h
LUFA/Drivers/Board/EVK527/AT45DB321C.h
LUFA/Drivers/Board/EVK527/Buttons.h
LUFA/Drivers/Board/EVK527/Dataflash.h
LUFA/Drivers/Board/EVK527/Joystick.h
LUFA/Drivers/Board/EVK527/LEDs.h
LUFA/Drivers/Board/JMDBU2/Buttons.h
LUFA/Drivers/Board/JMDBU2/LEDs.h
LUFA/Drivers/Board/Joystick.h
LUFA/Drivers/Board/LEDs.h
LUFA/Drivers/Board/MAXIMUS/LEDs.h
LUFA/Drivers/Board/MICROSIN162/Buttons.h
LUFA/Drivers/Board/MICROSIN162/LEDs.h
LUFA/Drivers/Board/MINIMUS/Buttons.h
LUFA/Drivers/Board/MINIMUS/LEDs.h
LUFA/Drivers/Board/OLIMEX162/Buttons.h
LUFA/Drivers/Board/OLIMEX162/LEDs.h
LUFA/Drivers/Board/RZUSBSTICK/LEDs.h
LUFA/Drivers/Board/SPARKFUN8U2/LEDs.h
LUFA/Drivers/Board/STK525/AT45DB321C.h
LUFA/Drivers/Board/STK525/Buttons.h
LUFA/Drivers/Board/STK525/Dataflash.h
LUFA/Drivers/Board/STK525/Joystick.h
LUFA/Drivers/Board/STK525/LEDs.h
LUFA/Drivers/Board/STK526/AT45DB642D.h
LUFA/Drivers/Board/STK526/Buttons.h
LUFA/Drivers/Board/STK526/Dataflash.h
LUFA/Drivers/Board/STK526/Joystick.h
LUFA/Drivers/Board/STK526/LEDs.h
LUFA/Drivers/Board/TEENSY/LEDs.h
LUFA/Drivers/Board/Temperature.h
LUFA/Drivers/Board/UDIP/Buttons.h
LUFA/Drivers/Board/UDIP/LEDs.h
LUFA/Drivers/Board/UNO/LEDs.h
LUFA/Drivers/Board/USBFOO/Buttons.h
LUFA/Drivers/Board/USBFOO/LEDS.h
LUFA/Drivers/Board/USBKEY/AT45DB642D.h
LUFA/Drivers/Board/USBKEY/Buttons.h
LUFA/Drivers/Board/USBKEY/Dataflash.h
LUFA/Drivers/Board/USBKEY/Joystick.h
LUFA/Drivers/Board/USBKEY/LEDs.h
LUFA/Drivers/Board/USBTINYMKII/Buttons.h
LUFA/Drivers/Board/USBTINYMKII/LEDs.h
LUFA/Drivers/Board/XPLAIN/AT45DB642D.h
LUFA/Drivers/Board/XPLAIN/Dataflash.h
LUFA/Drivers/Board/XPLAIN/LEDs.h
LUFA/Drivers/Misc/RingBuffer.h
LUFA/Drivers/Misc/TerminalCodes.h
LUFA/Drivers/Peripheral/ADC.h
LUFA/Drivers/Peripheral/AVR8/ADC.h [new file with mode: 0644]
LUFA/Drivers/Peripheral/AVR8/SPI.h [new file with mode: 0644]
LUFA/Drivers/Peripheral/AVR8/Serial.c [new file with mode: 0644]
LUFA/Drivers/Peripheral/AVR8/Serial.h [new file with mode: 0644]
LUFA/Drivers/Peripheral/AVR8/TWI.c [new file with mode: 0644]
LUFA/Drivers/Peripheral/AVR8/TWI.h [new file with mode: 0644]
LUFA/Drivers/Peripheral/AVRU4U6U7/ADC.h [deleted file]
LUFA/Drivers/Peripheral/AVRU4U6U7/TWI.h [deleted file]
LUFA/Drivers/Peripheral/SPI.h
LUFA/Drivers/Peripheral/Serial.c [deleted file]
LUFA/Drivers/Peripheral/Serial.h
LUFA/Drivers/Peripheral/TWI.c [deleted file]
LUFA/Drivers/Peripheral/TWI.h
LUFA/Drivers/USB/Class/Audio.h
LUFA/Drivers/USB/Class/CDC.h
LUFA/Drivers/USB/Class/Common/Audio.h
LUFA/Drivers/USB/Class/Common/CDC.h
LUFA/Drivers/USB/Class/Common/HID.h
LUFA/Drivers/USB/Class/Common/HIDParser.h
LUFA/Drivers/USB/Class/Common/HIDReportData.h
LUFA/Drivers/USB/Class/Common/MIDI.h
LUFA/Drivers/USB/Class/Common/MassStorage.h
LUFA/Drivers/USB/Class/Common/Printer.h
LUFA/Drivers/USB/Class/Common/RNDIS.h
LUFA/Drivers/USB/Class/Common/StillImage.h
LUFA/Drivers/USB/Class/Device/Audio.h
LUFA/Drivers/USB/Class/Device/CDC.h
LUFA/Drivers/USB/Class/Device/HID.h
LUFA/Drivers/USB/Class/Device/MIDI.h
LUFA/Drivers/USB/Class/Device/MassStorage.h
LUFA/Drivers/USB/Class/Device/RNDIS.h
LUFA/Drivers/USB/Class/HID.h
LUFA/Drivers/USB/Class/Host/CDC.h
LUFA/Drivers/USB/Class/Host/HID.h
LUFA/Drivers/USB/Class/Host/MIDI.h
LUFA/Drivers/USB/Class/Host/MassStorage.h
LUFA/Drivers/USB/Class/Host/Printer.h
LUFA/Drivers/USB/Class/Host/RNDIS.h
LUFA/Drivers/USB/Class/Host/StillImage.h
LUFA/Drivers/USB/Class/MIDI.h
LUFA/Drivers/USB/Class/MassStorage.h
LUFA/Drivers/USB/Class/Printer.h
LUFA/Drivers/USB/Class/RNDIS.h
LUFA/Drivers/USB/Class/StillImage.h
LUFA/Drivers/USB/HighLevel/ConfigDescriptor.h
LUFA/Drivers/USB/HighLevel/EndpointStream.h
LUFA/Drivers/USB/HighLevel/Events.h
LUFA/Drivers/USB/HighLevel/PipeStream.h
LUFA/Drivers/USB/HighLevel/StdDescriptors.h
LUFA/Drivers/USB/HighLevel/StdRequestType.h
LUFA/Drivers/USB/HighLevel/USBMode.h
LUFA/Drivers/USB/LowLevel/Device.h
LUFA/Drivers/USB/LowLevel/Endpoint.h
LUFA/Drivers/USB/LowLevel/Host.h
LUFA/Drivers/USB/LowLevel/OTG.h
LUFA/Drivers/USB/LowLevel/Pipe.h
LUFA/Drivers/USB/LowLevel/USBController.h
LUFA/Drivers/USB/USB.h
LUFA/ManPages/ChangeLog.txt
LUFA/ManPages/DirectorySummaries.txt
LUFA/Scheduler/Scheduler.c
LUFA/Scheduler/Scheduler.h
LUFA/makefile
Projects/AVRISP-MKII/makefile
Projects/Benito/makefile
Projects/Incomplete/StandaloneProgrammer/makefile
Projects/LEDNotifier/makefile
Projects/MIDIToneGenerator/makefile
Projects/Magstripe/makefile
Projects/MissileLauncher/makefile
Projects/RelayBoard/makefile
Projects/TempDataLogger/makefile
Projects/USBtoSerial/makefile
Projects/Webserver/makefile
Projects/XPLAINBridge/makefile

index 8fa7cb2..92b63da 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -187,7 +191,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += -DBOOT_START_ADDR=$(BOOT_START)UL
 CDEFS += $(LUFA_OPTS)
 
index ce97b58..d77933b 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -182,7 +186,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += -DBOOT_START_ADDR=$(BOOT_START)UL
 CDEFS += $(LUFA_OPTS)
 
index 338bafa..6d8fbf5 100644 (file)
 MCU = at90usb1287\r
 \r
 \r
+# Target architecture (see library "Board Types" documentation).\r
+ARCH = AVR8\r
+\r
+\r
 # Target board (see library "Board Types" documentation, NONE for projects not requiring\r
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called\r
 # "Board" inside the application directory.\r
@@ -182,7 +186,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources\r
 CDEFS  = -DF_CPU=$(F_CPU)UL\r
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL\r
-CDEFS += -DBOARD=BOARD_$(BOARD)\r
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)\r
 CDEFS += -DBOOT_START_ADDR=$(BOOT_START)UL\r
 CDEFS += $(LUFA_OPTS)\r
 \r
index 3c26c97..3713755 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -182,20 +186,20 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
 # Place -D or -U options here for ASM sources
 ADEFS  = -DF_CPU=$(F_CPU)
 ADEFS += -DF_CLOCK=$(F_CLOCK)UL
-ADEFS += -DBOARD=BOARD_$(BOARD)
+ADEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 ADEFS += $(LUFA_OPTS)
 
 # Place -D or -U options here for C++ sources
 CPPDEFS  = -DF_CPU=$(F_CPU)UL
 CPPDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CPPDEFS += -DBOARD=BOARD_$(BOARD)
+CPPDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CPPDEFS += $(LUFA_OPTS)
 #CPPDEFS += -D__STDC_LIMIT_MACROS
 #CPPDEFS += -D__STDC_CONSTANT_MACROS
index 9ff71b2..2f23514 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -183,20 +187,20 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
 # Place -D or -U options here for ASM sources
 ADEFS  = -DF_CPU=$(F_CPU)
 ADEFS += -DF_CLOCK=$(F_CLOCK)UL
-ADEFS += -DBOARD=BOARD_$(BOARD)
+ADEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 ADEFS += $(LUFA_OPTS)
 
 # Place -D or -U options here for C++ sources
 CPPDEFS  = -DF_CPU=$(F_CPU)UL
 CPPDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CPPDEFS += -DBOARD=BOARD_$(BOARD)
+CPPDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CPPDEFS += $(LUFA_OPTS)
 #CPPDEFS += -D__STDC_LIMIT_MACROS
 #CPPDEFS += -D__STDC_CONSTANT_MACROS
index c9c0349..9234fe9 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -179,20 +183,20 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
 # Place -D or -U options here for ASM sources
 ADEFS  = -DF_CPU=$(F_CPU)
 ADEFS += -DF_CLOCK=$(F_CLOCK)UL
-ADEFS += -DBOARD=BOARD_$(BOARD)
+ADEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 ADEFS += $(LUFA_OPTS)
 
 # Place -D or -U options here for C++ sources
 CPPDEFS  = -DF_CPU=$(F_CPU)UL
 CPPDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CPPDEFS += -DBOARD=BOARD_$(BOARD)
+CPPDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CPPDEFS += $(LUFA_OPTS)
 #CPPDEFS += -D__STDC_LIMIT_MACROS
 #CPPDEFS += -D__STDC_CONSTANT_MACROS
index 5c7e78e..b20d045 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -179,20 +183,20 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
 # Place -D or -U options here for ASM sources
 ADEFS  = -DF_CPU=$(F_CPU)
 ADEFS += -DF_CLOCK=$(F_CLOCK)UL
-ADEFS += -DBOARD=BOARD_$(BOARD)
+ADEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 ADEFS += $(LUFA_OPTS)
 
 # Place -D or -U options here for C++ sources
 CPPDEFS  = -DF_CPU=$(F_CPU)UL
 CPPDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CPPDEFS += -DBOARD=BOARD_$(BOARD)
+CPPDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CPPDEFS += $(LUFA_OPTS)
 #CPPDEFS += -D__STDC_LIMIT_MACROS
 #CPPDEFS += -D__STDC_CONSTANT_MACROS
index ff8ffea..23845f4 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -179,20 +183,20 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
 # Place -D or -U options here for ASM sources
 ADEFS  = -DF_CPU=$(F_CPU)
 ADEFS += -DF_CLOCK=$(F_CLOCK)UL
-ADEFS += -DBOARD=BOARD_$(BOARD)
+ADEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 ADEFS += $(LUFA_OPTS)
 
 # Place -D or -U options here for C++ sources
 CPPDEFS  = -DF_CPU=$(F_CPU)UL
 CPPDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CPPDEFS += -DBOARD=BOARD_$(BOARD)
+CPPDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CPPDEFS += $(LUFA_OPTS)
 #CPPDEFS += -D__STDC_LIMIT_MACROS
 #CPPDEFS += -D__STDC_CONSTANT_MACROS
index d31b068..7981b5d 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -179,20 +183,20 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
 # Place -D or -U options here for ASM sources
 ADEFS  = -DF_CPU=$(F_CPU)
 ADEFS += -DF_CLOCK=$(F_CLOCK)UL
-ADEFS += -DBOARD=BOARD_$(BOARD)
+ADEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 ADEFS += $(LUFA_OPTS)
 
 # Place -D or -U options here for C++ sources
 CPPDEFS  = -DF_CPU=$(F_CPU)UL
 CPPDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CPPDEFS += -DBOARD=BOARD_$(BOARD)
+CPPDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CPPDEFS += $(LUFA_OPTS)
 #CPPDEFS += -D__STDC_LIMIT_MACROS
 #CPPDEFS += -D__STDC_CONSTANT_MACROS
index 8ef9319..c4477dc 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -179,20 +183,20 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
 # Place -D or -U options here for ASM sources
 ADEFS  = -DF_CPU=$(F_CPU)
 ADEFS += -DF_CLOCK=$(F_CLOCK)UL
-ADEFS += -DBOARD=BOARD_$(BOARD)
+ADEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 ADEFS += $(LUFA_OPTS)
 
 # Place -D or -U options here for C++ sources
 CPPDEFS  = -DF_CPU=$(F_CPU)UL
 CPPDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CPPDEFS += -DBOARD=BOARD_$(BOARD)
+CPPDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CPPDEFS += $(LUFA_OPTS)
 #CPPDEFS += -D__STDC_LIMIT_MACROS
 #CPPDEFS += -D__STDC_CONSTANT_MACROS
index 8ccd785..9fcd9ae 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -179,20 +183,20 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
 # Place -D or -U options here for ASM sources
 ADEFS  = -DF_CPU=$(F_CPU)
 ADEFS += -DF_CLOCK=$(F_CLOCK)UL
-ADEFS += -DBOARD=BOARD_$(BOARD)
+ADEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 ADEFS += $(LUFA_OPTS)
 
 # Place -D or -U options here for C++ sources
 CPPDEFS  = -DF_CPU=$(F_CPU)UL
 CPPDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CPPDEFS += -DBOARD=BOARD_$(BOARD)
+CPPDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CPPDEFS += $(LUFA_OPTS)
 #CPPDEFS += -D__STDC_LIMIT_MACROS
 #CPPDEFS += -D__STDC_CONSTANT_MACROS
index c60aff9..11b76de 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -179,20 +183,20 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
 # Place -D or -U options here for ASM sources
 ADEFS  = -DF_CPU=$(F_CPU)
 ADEFS += -DF_CLOCK=$(F_CLOCK)UL
-ADEFS += -DBOARD=BOARD_$(BOARD)
+ADEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 ADEFS += $(LUFA_OPTS)
 
 # Place -D or -U options here for C++ sources
 CPPDEFS  = -DF_CPU=$(F_CPU)UL
 CPPDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CPPDEFS += -DBOARD=BOARD_$(BOARD)
+CPPDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CPPDEFS += $(LUFA_OPTS)
 #CPPDEFS += -D__STDC_LIMIT_MACROS
 #CPPDEFS += -D__STDC_CONSTANT_MACROS
index 54b4b7f..bd548f8 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -182,20 +186,20 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
 # Place -D or -U options here for ASM sources
 ADEFS  = -DF_CPU=$(F_CPU)
 ADEFS += -DF_CLOCK=$(F_CLOCK)UL
-ADEFS += -DBOARD=BOARD_$(BOARD)
+ADEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 ADEFS += $(LUFA_OPTS)
 
 # Place -D or -U options here for C++ sources
 CPPDEFS  = -DF_CPU=$(F_CPU)UL
 CPPDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CPPDEFS += -DBOARD=BOARD_$(BOARD)
+CPPDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CPPDEFS += $(LUFA_OPTS)
 #CPPDEFS += -D__STDC_LIMIT_MACROS
 #CPPDEFS += -D__STDC_CONSTANT_MACROS
index bdc0a9b..1d7eaca 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -182,20 +186,20 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
 # Place -D or -U options here for ASM sources
 ADEFS  = -DF_CPU=$(F_CPU)
 ADEFS += -DF_CLOCK=$(F_CLOCK)UL
-ADEFS += -DBOARD=BOARD_$(BOARD)
+ADEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 ADEFS += $(LUFA_OPTS)
 
 # Place -D or -U options here for C++ sources
 CPPDEFS  = -DF_CPU=$(F_CPU)UL
 CPPDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CPPDEFS += -DBOARD=BOARD_$(BOARD)
+CPPDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CPPDEFS += $(LUFA_OPTS)
 #CPPDEFS += -D__STDC_LIMIT_MACROS
 #CPPDEFS += -D__STDC_CONSTANT_MACROS
index 76e6d7d..317005f 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -179,7 +183,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index e4e2274..910452b 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -197,7 +201,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 1f43438..fb7dd77 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -179,7 +183,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 3aa0b48..2ed7afd 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -179,7 +183,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 2060175..9439e1d 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -183,7 +187,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 7e282ed..298cd22 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -179,7 +183,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 15ceba7..40746f8 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -181,7 +185,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 1f52600..28bc1c2 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -182,7 +186,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 4daadb2..6808429 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -178,7 +182,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index ae6c300..d87f6dc 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -178,7 +182,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index e22d511..ba9c158 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -178,7 +182,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 2c1e31f..3e764d9 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -178,7 +182,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index f1a16e1..12490fc 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -178,7 +182,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 40c0283..7b8a242 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -178,7 +182,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index d1c0d81..becdfab 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -181,7 +185,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 9041e5c..7b8d8ee 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -178,7 +182,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 09213a9..6652864 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -197,7 +201,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 0488b71..fd13fc6 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -178,7 +182,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 8aca25a..c9b74eb 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -181,7 +185,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 4133b2b..f72c1e3 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -176,7 +180,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 30946c5..ba0e92f 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -176,7 +180,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 4e07a68..b1070f9 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -176,7 +180,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index fe20386..99e529f 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -176,7 +180,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 8124af8..22b9b14 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -177,7 +181,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 77c4723..748213a 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -176,7 +180,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 37424e8..040f269 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -176,7 +180,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index a5df91f..85638ae 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -176,7 +180,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 9425447..9ed8fb0 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -176,7 +180,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index e4ded2c..1c8a2c3 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -176,7 +180,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index c957f83..176e1fa 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -176,7 +180,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index de80a0e..1c6dc0d 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -185,7 +189,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 4db0c93..9365384 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -176,7 +180,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 93d0522..09f87d9 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -177,7 +181,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 1c73378..a4b16f1 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -176,7 +180,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index a0ff248..9ddad4e 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -177,7 +181,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 146ca54..2f30475 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -176,7 +180,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index ce38971..756204a 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -178,7 +182,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index f64af3b..e0abc3f 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -176,7 +180,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 79d8ec2..40648ee 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -177,7 +181,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index f4946c4..3741590 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -177,7 +181,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index dce4aad..5f0e12b 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -177,7 +181,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index ebf57ca..5878b58 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -177,7 +181,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 298c029..c5e03c8 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -176,7 +180,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 3fc4290..ca95f21 100644 (file)
@@ -1 +1 @@
-<Project name="LUFA"><Folder name="Demos"><Folder name="Device"><Folder name="ClassDriver"><Folder name="AudioInput"><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.c"></File><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.h"></File><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.txt"></File><File path="Demos\Device\ClassDriver\AudioInput\Descriptors.c"></File><File path="Demos\Device\ClassDriver\AudioInput\Descriptors.h"></File><File path="Demos\Device\ClassDriver\AudioInput\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\AudioInput\makefile"></File><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.aps"></File></Folder><Folder name="AudioOutput"><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.c"></File><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.h"></File><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.txt"></File><File path="Demos\Device\ClassDriver\AudioOutput\Descriptors.c"></File><File path="Demos\Device\ClassDriver\AudioOutput\Descriptors.h"></File><File path="Demos\Device\ClassDriver\AudioOutput\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\AudioOutput\makefile"></File><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.aps"></File></Folder><Folder name="DualVirtualSerial"><File path="Demos\Device\ClassDriver\DualVirtualSerial\Descriptors.c"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\Descriptors.h"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\DualVirtualSerial.c"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\DualVirtualSerial.h"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\DualVirtualSerial.txt"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\LUFA DualVirtualSerial.inf"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\makefile"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\DualVirtualSerial.aps"></File></Folder><Folder name="GenericHID"><File path="Demos\Device\ClassDriver\GenericHID\Descriptors.c"></File><File path="Demos\Device\ClassDriver\GenericHID\Descriptors.h"></File><File path="Demos\Device\ClassDriver\GenericHID\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.c"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.h"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.txt"></File><File path="Demos\Device\ClassDriver\GenericHID\makefile"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.aps"></File></Folder><Folder name="Joystick"><File path="Demos\Device\ClassDriver\Joystick\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Joystick\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Joystick\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.c"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.h"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.txt"></File><File path="Demos\Device\ClassDriver\Joystick\makefile"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.aps"></File></Folder><Folder name="Keyboard"><File path="Demos\Device\ClassDriver\Keyboard\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Keyboard\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Keyboard\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.c"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.h"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.txt"></File><File path="Demos\Device\ClassDriver\Keyboard\makefile"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.aps"></File></Folder><Folder name="KeyboardMouse"><File path="Demos\Device\ClassDriver\KeyboardMouse\Descriptors.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\Descriptors.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.txt"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\makefile"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.aps"></File></Folder><Folder name="KeyboardMouseMultiReport"><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\Descriptors.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\Descriptors.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\KeyboardMouseMultiReport.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\KeyboardMouseMultiReport.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\KeyboardMouseMultiReport.txt"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\makefile"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\KeyboardMouseMultiReport.aps"></File></Folder><Folder name="MassStorage"><Folder name="Lib"><File path="Demos\Device\ClassDriver\MassStorage\Lib\DataflashManager.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\DataflashManager.h"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\SCSI.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\SCSI.h"></File></Folder><File path="Demos\Device\ClassDriver\MassStorage\Descriptors.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Descriptors.h"></File><File path="Demos\Device\ClassDriver\MassStorage\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\MassStorage\makefile"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.c"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.h"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.txt"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.aps"></File></Folder><Folder name="MassStorageKeyboard"><Folder name="Lib"><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\DataflashManager.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\DataflashManager.h"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\SCSI.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\SCSI.h"></File></Folder><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Descriptors.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Descriptors.h"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\makefile"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.h"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.txt"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.aps"></File></Folder><Folder name="MIDI"><File path="Demos\Device\ClassDriver\MIDI\Descriptors.c"></File><File path="Demos\Device\ClassDriver\MIDI\Descriptors.h"></File><File path="Demos\Device\ClassDriver\MIDI\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\MIDI\makefile"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.c"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.h"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.txt"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.aps"></File></Folder><Folder name="Mouse"><File path="Demos\Device\ClassDriver\Mouse\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Mouse\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Mouse\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Mouse\makefile"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.c"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.h"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.txt"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.aps"></File></Folder><Folder name="RNDISEthernet"><Folder name="Lib"><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Webserver.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ARP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ARP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\DHCP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\DHCP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Ethernet.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Ethernet.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\EthernetProtocols.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ICMP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ICMP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\IP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\IP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ProtocolDecoders.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ProtocolDecoders.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\TCP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\TCP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\UDP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\UDP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Webserver.c"></File></Folder><File path="Demos\Device\ClassDriver\RNDISEthernet\Descriptors.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Descriptors.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\LUFA RNDIS.inf"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\makefile"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.txt"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.aps"></File></Folder><Folder name="VirtualSerial"><File path="Demos\Device\ClassDriver\VirtualSerial\Descriptors.c"></File><File path="Demos\Device\ClassDriver\VirtualSerial\Descriptors.h"></File><File path="Demos\Device\ClassDriver\VirtualSerial\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\VirtualSerial\LUFA VirtualSerial.inf"></File><File path="Demos\Device\ClassDriver\VirtualSerial\makefile"></File><File path="Demos\Device\ClassDriver\VirtualSerial\VirtualSerial.c"></File><File path="Demos\Device\ClassDriver\VirtualSerial\VirtualSerial.h"></File><File path="Demos\Device\ClassDriver\VirtualSerial\VirtualSerial.txt"></File><File path="Demos\Device\ClassDriver\VirtualSerial\VirtualSerial.aps"></File></Folder><Folder name="VirtualSerialMouse"><File path="Demos\Device\ClassDriver\VirtualSerialMouse\Descriptors.c"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\Descriptors.h"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\LUFA VirtualSerialMouse.inf"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\makefile"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\VirtualSerialMouse.c"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\VirtualSerialMouse.h"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\VirtualSerialMouse.txt"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\VirtualSerialMouse.aps"></File></Folder><File path="Demos\Device\ClassDriver\makefile"></File></Folder><Folder name="LowLevel"><Folder name="AudioInput"><File path="Demos\Device\LowLevel\AudioInput\AudioInput.c"></File><File path="Demos\Device\LowLevel\AudioInput\AudioInput.h"></File><File path="Demos\Device\LowLevel\AudioInput\AudioInput.txt"></File><File path="Demos\Device\LowLevel\AudioInput\Descriptors.c"></File><File path="Demos\Device\LowLevel\AudioInput\Descriptors.h"></File><File path="Demos\Device\LowLevel\AudioInput\Doxygen.conf"></File><File path="Demos\Device\LowLevel\AudioInput\makefile"></File><File path="Demos\Device\LowLevel\AudioInput\AudioInput.aps"></File></Folder><Folder name="AudioOutput"><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.c"></File><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.h"></File><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.txt"></File><File path="Demos\Device\LowLevel\AudioOutput\Descriptors.c"></File><File path="Demos\Device\LowLevel\AudioOutput\Descriptors.h"></File><File path="Demos\Device\LowLevel\AudioOutput\Doxygen.conf"></File><File path="Demos\Device\LowLevel\AudioOutput\makefile"></File><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.aps"></File></Folder><Folder name="DualVirtualSerial"><File path="Demos\Device\LowLevel\DualVirtualSerial\Descriptors.c"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\Descriptors.h"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\Doxygen.conf"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\DualVirtualSerial.c"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\DualVirtualSerial.h"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\DualVirtualSerial.txt"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\LUFA DualVirtualSerial.inf"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\makefile"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\DualVirtualSerial.aps"></File></Folder><Folder name="GenericHID"><File path="Demos\Device\LowLevel\GenericHID\Descriptors.c"></File><File path="Demos\Device\LowLevel\GenericHID\Descriptors.h"></File><File path="Demos\Device\LowLevel\GenericHID\Doxygen.conf"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.c"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.h"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.txt"></File><File path="Demos\Device\LowLevel\GenericHID\makefile"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.aps"></File></Folder><Folder name="Joystick"><File path="Demos\Device\LowLevel\Joystick\Descriptors.c"></File><File path="Demos\Device\LowLevel\Joystick\Descriptors.h"></File><File path="Demos\Device\LowLevel\Joystick\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.c"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.h"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.txt"></File><File path="Demos\Device\LowLevel\Joystick\makefile"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.aps"></File></Folder><Folder name="Keyboard"><File path="Demos\Device\LowLevel\Keyboard\Descriptors.c"></File><File path="Demos\Device\LowLevel\Keyboard\Descriptors.h"></File><File path="Demos\Device\LowLevel\Keyboard\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.c"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.h"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.txt"></File><File path="Demos\Device\LowLevel\Keyboard\makefile"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.aps"></File></Folder><Folder name="KeyboardMouse"><File path="Demos\Device\LowLevel\KeyboardMouse\Descriptors.c"></File><File path="Demos\Device\LowLevel\KeyboardMouse\Descriptors.h"></File><File path="Demos\Device\LowLevel\KeyboardMouse\Doxygen.conf"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.c"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.h"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.txt"></File><File path="Demos\Device\LowLevel\KeyboardMouse\makefile"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.aps"></File></Folder><Folder name="MassStorage"><Folder name="Lib"><File path="Demos\Device\LowLevel\MassStorage\Lib\DataflashManager.c"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\DataflashManager.h"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI.c"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI.h"></File></Folder><File path="Demos\Device\LowLevel\MassStorage\Descriptors.c"></File><File path="Demos\Device\LowLevel\MassStorage\Descriptors.h"></File><File path="Demos\Device\LowLevel\MassStorage\Doxygen.conf"></File><File path="Demos\Device\LowLevel\MassStorage\makefile"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.c"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.h"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.txt"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.aps"></File></Folder><Folder name="MIDI"><File path="Demos\Device\LowLevel\MIDI\Descriptors.c"></File><File path="Demos\Device\LowLevel\MIDI\Descriptors.h"></File><File path="Demos\Device\LowLevel\MIDI\Doxygen.conf"></File><File path="Demos\Device\LowLevel\MIDI\makefile"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.c"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.h"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.txt"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.aps"></File></Folder><Folder name="Mouse"><File path="Demos\Device\LowLevel\Mouse\Descriptors.c"></File><File path="Demos\Device\LowLevel\Mouse\Descriptors.h"></File><File path="Demos\Device\LowLevel\Mouse\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Mouse\makefile"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.c"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.h"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.txt"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.aps"></File></Folder><Folder name="RNDISEthernet"><Folder name="Lib"><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Webserver.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ARP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ARP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\DHCP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\DHCP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Ethernet.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Ethernet.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\EthernetProtocols.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ICMP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ICMP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\IP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\IP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ProtocolDecoders.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ProtocolDecoders.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\RNDIS.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\RNDIS.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\TCP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\TCP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\UDP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\UDP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Webserver.c"></File></Folder><File path="Demos\Device\LowLevel\RNDISEthernet\Descriptors.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Descriptors.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Doxygen.conf"></File><File path="Demos\Device\LowLevel\RNDISEthernet\LUFA RNDIS.inf"></File><File path="Demos\Device\LowLevel\RNDISEthernet\makefile"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.txt"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.aps"></File></Folder><Folder name="VirtualSerial"><File path="Demos\Device\LowLevel\VirtualSerial\Descriptors.c"></File><File path="Demos\Device\LowLevel\VirtualSerial\Descriptors.h"></File><File path="Demos\Device\LowLevel\VirtualSerial\Doxygen.conf"></File><File path="Demos\Device\LowLevel\VirtualSerial\LUFA VirtualSerial.inf"></File><File path="Demos\Device\LowLevel\VirtualSerial\makefile"></File><File path="Demos\Device\LowLevel\VirtualSerial\VirtualSerial.c"></File><File path="Demos\Device\LowLevel\VirtualSerial\VirtualSerial.h"></File><File path="Demos\Device\LowLevel\VirtualSerial\VirtualSerial.txt"></File><File path="Demos\Device\LowLevel\VirtualSerial\VirtualSerial.aps"></File></Folder><File path="Demos\Device\LowLevel\makefile"></File></Folder><Folder name="Incomplete"><Folder name="SideShow"><Folder name="Lib"><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowApplications.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowApplications.h"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommands.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommands.h"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommon.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommon.h"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowContent.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowContent.h"></File></Folder><File path="Demos\Device\Incomplete\Sideshow\Descriptors.c"></File><File path="Demos\Device\Incomplete\Sideshow\Descriptors.h"></File><File path="Demos\Device\Incomplete\Sideshow\makefile"></File><File path="Demos\Device\Incomplete\Sideshow\Sideshow.c"></File><File path="Demos\Device\Incomplete\Sideshow\Sideshow.h"></File></Folder><Folder name="TestAndMeasurement"><File path="Demos\Device\Incomplete\TestAndMeasurement\Descriptors.c"></File><File path="Demos\Device\Incomplete\TestAndMeasurement\Descriptors.h"></File><File path="Demos\Device\Incomplete\TestAndMeasurement\TestAndMeasurement.c"></File><File path="Demos\Device\Incomplete\TestAndMeasurement\TestAndMeasurement.h"></File><File path="Demos\Device\Incomplete\TestAndMeasurement\makefile"></File></Folder></Folder><File path="Demos\Device\makefile"></File></Folder><Folder name="Host"><Folder name="ClassDriver"><Folder name="JoystickHostWithParser"><File path="Demos\Host\ClassDriver\JoystickHostWithParser\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.c"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.h"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.txt"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\makefile"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.aps"></File></Folder><Folder name="KeyboardHost"><File path="Demos\Host\ClassDriver\KeyboardHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.c"></File><File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.h"></File><File path="Demos\Host\ClassDriver\KeyboardHost\makefile"></File><File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.txt"></File><File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.aps"></File></Folder><Folder name="KeyboardHostWithParser"><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.c"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.h"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\makefile"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.txt"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.aps"></File></Folder><Folder name="MassStorageHost"><File path="Demos\Host\ClassDriver\MassStorageHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MassStorageHost\makefile"></File><File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.c"></File><File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.h"></File><File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.txt"></File><File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.aps"></File></Folder><Folder name="MIDIHost"><File path="Demos\Host\ClassDriver\MIDIHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MIDIHost\makefile"></File><File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.c"></File><File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.h"></File><File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.txt"></File><File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.aps"></File></Folder><Folder name="MouseHost"><File path="Demos\Host\ClassDriver\MouseHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MouseHost\makefile"></File><File path="Demos\Host\ClassDriver\MouseHost\MouseHost.c"></File><File path="Demos\Host\ClassDriver\MouseHost\MouseHost.h"></File><File path="Demos\Host\ClassDriver\MouseHost\MouseHost.txt"></File><File path="Demos\Host\ClassDriver\MouseHost\MouseHost.aps"></File></Folder><Folder name="MouseHostWithParser"><File path="Demos\Host\ClassDriver\MouseHostWithParser\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\makefile"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.txt"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.c"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.h"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.aps"></File></Folder><Folder name="PrinterHost"><File path="Demos\Host\ClassDriver\PrinterHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\PrinterHost\makefile"></File><File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.c"></File><File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.h"></File><File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.txt"></File><File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.aps"></File></Folder><Folder name="RNDISEthernetHost"><File path="Demos\Host\ClassDriver\RNDISEthernetHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\RNDISEthernetHost\makefile"></File><File path="Demos\Host\ClassDriver\RNDISEthernetHost\RNDISEthernetHost.c"></File><File path="Demos\Host\ClassDriver\RNDISEthernetHost\RNDISEthernetHost.h"></File><File path="Demos\Host\ClassDriver\RNDISEthernetHost\RNDISEthernetHost.txt"></File><File path="Demos\Host\ClassDriver\RNDISEthernetHost\RNDISEthernetHost.aps"></File></Folder><Folder name="StillImageHost"><File path="Demos\Host\ClassDriver\StillImageHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\StillImageHost\makefile"></File><File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.c"></File><File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.h"></File><File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.txt"></File><File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.aps"></File></Folder><Folder name="VirtualSerialHost"><File path="Demos\Host\ClassDriver\VirtualSerialHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\VirtualSerialHost\makefile"></File><File path="Demos\Host\ClassDriver\VirtualSerialHost\VirtualSerialHost.c"></File><File path="Demos\Host\ClassDriver\VirtualSerialHost\VirtualSerialHost.h"></File><File path="Demos\Host\ClassDriver\VirtualSerialHost\VirtualSerialHost.txt"></File><File path="Demos\Host\ClassDriver\VirtualSerialHost\VirtualSerialHost.aps"></File></Folder><File path="Demos\Host\ClassDriver\makefile"></File></Folder><Folder name="LowLevel"><Folder name="GenericHIDHost"><File path="Demos\Host\LowLevel\GenericHIDHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\GenericHIDHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\GenericHIDHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.c"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.h"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.txt"></File><File path="Demos\Host\LowLevel\GenericHIDHost\makefile"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.aps"></File></Folder><Folder name="JoystickHostWithParser"><File path="Demos\Host\LowLevel\JoystickHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\Doxygen.conf"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\HIDReport.c"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\HIDReport.h"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.c"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.h"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.txt"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\makefile"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.aps"></File></Folder><Folder name="KeyboardHost"><File path="Demos\Host\LowLevel\KeyboardHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\KeyboardHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\KeyboardHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.c"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.h"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.txt"></File><File path="Demos\Host\LowLevel\KeyboardHost\makefile"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.aps"></File></Folder><Folder name="KeyboardHostWithParser"><File path="Demos\Host\LowLevel\KeyboardHostWithParser\makefile"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\Doxygen.conf"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\HIDReport.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\HIDReport.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.txt"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.aps"></File></Folder><Folder name="MassStorageHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\MassStorageHost\Lib\MassStoreCommands.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\Lib\MassStoreCommands.h"></File></Folder><File path="Demos\Host\LowLevel\MassStorageHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MassStorageHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MassStorageHost\makefile"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.h"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.txt"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.aps"></File></Folder><Folder name="MIDIHost"><File path="Demos\Host\LowLevel\MIDIHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MIDIHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MIDIHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MIDIHost\makefile"></File><File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.c"></File><File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.h"></File><File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.txt"></File><File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.aps"></File></Folder><Folder name="MouseHost"><File path="Demos\Host\LowLevel\MouseHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MouseHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MouseHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MouseHost\makefile"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.c"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.h"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.txt"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.aps"></File></Folder><Folder name="MouseHostWithParser"><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.txt"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\HIDReport.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\HIDReport.h"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\makefile"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.h"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.aps"></File></Folder><Folder name="PrinterHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\PrinterHost\Lib\PrinterCommands.c"></File><File path="Demos\Host\LowLevel\PrinterHost\Lib\PrinterCommands.h"></File></Folder><File path="Demos\Host\LowLevel\PrinterHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\PrinterHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\PrinterHost\makefile"></File><File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.c"></File><File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.h"></File><File path="Demos\Host\LowLevel\PrinterHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.txt"></File><File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.aps"></File></Folder><Folder name="RNDISEthernetHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\RNDISEthernetHost\Lib\RNDISCommands.c"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\Lib\RNDISCommands.h"></File></Folder><File path="Demos\Host\LowLevel\RNDISEthernetHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\makefile"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\RNDISEthernetHost.c"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\RNDISEthernetHost.h"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\RNDISHost.txt"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\RNDISEthernetHost.aps"></File></Folder><Folder name="StillImageHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.c"></File><File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.h"></File><File path="Demos\Host\LowLevel\StillImageHost\Lib\PIMACodes.h"></File></Folder><File path="Demos\Host\LowLevel\StillImageHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\StillImageHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\StillImageHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\StillImageHost\makefile"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.c"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.h"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.txt"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.aps"></File></Folder><Folder name="VirtualSerialHost"><File path="Demos\Host\LowLevel\VirtualSerialHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\makefile"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\VirtualSerialHost.c"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\VirtualSerialHost.h"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\VirtualSerialHost.txt"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\VirtualSerialHost.aps"></File></Folder><File path="Demos\Host\LowLevel\makefile"></File></Folder><Folder name="Incomplete"><Folder name="BluetoothHost"><Folder name="Lib"><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothACLPackets.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothACLPackets.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothClassCodes.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothHCICommands.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothHCICommands.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothStack.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothStack.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\SDPServices.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\SDPServices.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\RFCOMM.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\RFCOMM.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\SDP.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\SDP.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\RFCOMMControl.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\RFCOMMControl.h"></File></Folder><File path="Demos\Host\Incomplete\BluetoothHost\makefile"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothHost.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothHost.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\ConfigDescriptor.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\ConfigDescriptor.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\DeviceDescriptor.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\DeviceDescriptor.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Doxygen.conf"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothEvents.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothEvents.h"></File></Folder></Folder><File path="Demos\Host\makefile"></File></Folder><Folder name="DualRole"><Folder name="ClassDriver"><Folder name="MouseHostDevice"><File path="Demos\DualRole\ClassDriver\MouseHostDevice\Doxygen.conf"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\makefile"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\Descriptors.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\Descriptors.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\DeviceFunctions.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\HostFunctions.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\HostFunctions.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\DeviceFunctions.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.txt"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.aps"></File></Folder><File path="Demos\DualRole\ClassDriver\makefile"></File></Folder><File path="Demos\DualRole\makefile"></File></Folder><File path="Demos\makefile"></File></Folder><Folder name="LUFA"><Folder name="Common"><File path="LUFA\Common\Common.h"></File><File path="LUFA\Common\BoardTypes.h"></File><File path="LUFA\Common\Attributes.h"></File></Folder><Folder name="Drivers"><Folder name="USB"><Folder name="LowLevel"><File path="LUFA\Drivers\USB\LowLevel\Pipe.c"></File><File path="LUFA\Drivers\USB\LowLevel\Pipe.h"></File><File path="LUFA\Drivers\USB\LowLevel\Device.h"></File><File path="LUFA\Drivers\USB\LowLevel\Endpoint.c"></File><File path="LUFA\Drivers\USB\LowLevel\Endpoint.h"></File><File path="LUFA\Drivers\USB\LowLevel\Host.c"></File><File path="LUFA\Drivers\USB\LowLevel\Host.h"></File><File path="LUFA\Drivers\USB\LowLevel\OTG.h"></File><File path="LUFA\Drivers\USB\LowLevel\USBInterrupt.c"></File><File path="LUFA\Drivers\USB\LowLevel\USBInterrupt.h"></File><File path="LUFA\Drivers\USB\LowLevel\Device.c"></File><File path="LUFA\Drivers\USB\LowLevel\USBController.c"></File><File path="LUFA\Drivers\USB\LowLevel\USBController.h"></File></Folder><Folder name="HighLevel"><Folder name="Template"><File path="LUFA\Drivers\USB\HighLevel\Template\Template_Pipe_RW.c"></File><File path="LUFA\Drivers\USB\HighLevel\Template\Template_Endpoint_RW.c"></File><File path="LUFA\Drivers\USB\HighLevel\Template\Template_Endpoint_Control_W.c"></File><File path="LUFA\Drivers\USB\HighLevel\Template\Template_Endpoint_Control_R.c"></File></Folder><File path="LUFA\Drivers\USB\HighLevel\USBTask.h"></File><File path="LUFA\Drivers\USB\HighLevel\Events.c"></File><File path="LUFA\Drivers\USB\HighLevel\Events.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBTask.c"></File><File path="LUFA\Drivers\USB\HighLevel\StdDescriptors.h"></File><File path="LUFA\Drivers\USB\HighLevel\StdRequestType.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBMode.h"></File><File path="LUFA\Drivers\USB\HighLevel\ConfigDescriptor.c"></File><File path="LUFA\Drivers\USB\HighLevel\ConfigDescriptor.h"></File><File path="LUFA\Drivers\USB\HighLevel\DeviceStandardReq.c"></File><File path="LUFA\Drivers\USB\HighLevel\DeviceStandardReq.h"></File><File path="LUFA\Drivers\USB\HighLevel\HostStandardReq.c"></File><File path="LUFA\Drivers\USB\HighLevel\HostStandardReq.h"></File><File path="LUFA\Drivers\USB\HighLevel\EndpointStream.h"></File><File path="LUFA\Drivers\USB\HighLevel\EndpointStream.c"></File><File path="LUFA\Drivers\USB\HighLevel\PipeStream.h"></File><File path="LUFA\Drivers\USB\HighLevel\PipeStream.c"></File></Folder><Folder name="Class"><Folder name="Device"><File path="LUFA\Drivers\USB\Class\Device\HID.c"></File><File path="LUFA\Drivers\USB\Class\Device\HID.h"></File><File path="LUFA\Drivers\USB\Class\Device\CDC.c"></File><File path="LUFA\Drivers\USB\Class\Device\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Device\RNDIS.c"></File><File path="LUFA\Drivers\USB\Class\Device\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\Device\MassStorage.c"></File><File path="LUFA\Drivers\USB\Class\Device\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Device\Audio.c"></File><File path="LUFA\Drivers\USB\Class\Device\Audio.h"></File><File path="LUFA\Drivers\USB\Class\Device\MIDI.c"></File><File path="LUFA\Drivers\USB\Class\Device\MIDI.h"></File></Folder><Folder name="Host"><File path="LUFA\Drivers\USB\Class\Host\CDC.c"></File><File path="LUFA\Drivers\USB\Class\Host\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Host\HID.c"></File><File path="LUFA\Drivers\USB\Class\Host\HID.h"></File><File path="LUFA\Drivers\USB\Class\Host\MassStorage.c"></File><File path="LUFA\Drivers\USB\Class\Host\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Host\StillImage.c"></File><File path="LUFA\Drivers\USB\Class\Host\StillImage.h"></File><File path="LUFA\Drivers\USB\Class\Host\MIDI.c"></File><File path="LUFA\Drivers\USB\Class\Host\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\Host\Printer.c"></File><File path="LUFA\Drivers\USB\Class\Host\Printer.h"></File><File path="LUFA\Drivers\USB\Class\Host\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\Host\RNDIS.c"></File></Folder><Folder name="Common"><File path="LUFA\Drivers\USB\Class\Common\Audio.h"></File><File path="LUFA\Drivers\USB\Class\Common\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Common\HID.h"></File><File path="LUFA\Drivers\USB\Class\Common\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Common\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\Common\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\Common\StillImage.h"></File><File path="LUFA\Drivers\USB\Class\Common\Printer.h"></File><File path="LUFA\Drivers\USB\Class\Common\HIDParser.c"></File><File path="LUFA\Drivers\USB\Class\Common\HIDParser.h"></File><File path="LUFA\Drivers\USB\Class\Common\HIDReportData.h"></File></Folder><File path="LUFA\Drivers\USB\Class\Audio.h"></File><File path="LUFA\Drivers\USB\Class\CDC.h"></File><File path="LUFA\Drivers\USB\Class\HID.h"></File><File path="LUFA\Drivers\USB\Class\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\StillImage.h"></File><File path="LUFA\Drivers\USB\Class\Printer.h"></File></Folder><File path="LUFA\Drivers\USB\USB.h"></File></Folder><Folder name="Misc"><File path="LUFA\Drivers\Misc\TerminalCodes.h"></File><File path="LUFA\Drivers\Misc\RingBuffer.h"></File></Folder><Folder name="Board"><Folder name="ADAFRUITU4"><File path="LUFA\Drivers\Board\ADAFRUITU4\LEDs.h"></File></Folder><Folder name="ATAVRUSBRF01"><File path="LUFA\Drivers\Board\ATAVRUSBRF01\LEDs.h"></File><File path="LUFA\Drivers\Board\ATAVRUSBRF01\Buttons.h"></File></Folder><Folder name="BENITO"><File path="LUFA\Drivers\Board\BENITO\LEDs.h"></File><File path="LUFA\Drivers\Board\BENITO\Buttons.h"></File></Folder><Folder name="BUMBLEB"><File path="LUFA\Drivers\Board\BUMBLEB\Buttons.h"></File><File path="LUFA\Drivers\Board\BUMBLEB\Joystick.h"></File><File path="LUFA\Drivers\Board\BUMBLEB\LEDs.h"></File></Folder><Folder name="BUI"><File path="LUFA\Drivers\Board\BUI\LEDs.h"></File></Folder><Folder name="BLACKCAT"><File path="LUFA\Drivers\Board\BLACKCAT\LEDs.h"></File></Folder><Folder name="CULV3"><File path="LUFA\Drivers\Board\CULV3\Buttons.h"></File><File path="LUFA\Drivers\Board\CULV3\LEDs.h"></File></Folder><Folder name="EVK527"><File path="LUFA\Drivers\Board\EVK527\Buttons.h"></File><File path="LUFA\Drivers\Board\EVK527\LEDs.h"></File><File path="LUFA\Drivers\Board\EVK527\Joystick.h"></File><File path="LUFA\Drivers\Board\EVK527\AT45DB321C.h"></File><File path="LUFA\Drivers\Board\EVK527\Dataflash.h"></File></Folder><Folder name="JMDBU2"><File path="LUFA\Drivers\Board\JMDBU2\Buttons.h"></File><File path="LUFA\Drivers\Board\JMDBU2\LEDs.h"></File></Folder><Folder name="MAXIMUS"><File path="LUFA\Drivers\Board\MAXIMUS\LEDs.h"></File></Folder><Folder name="MICROSIN162"><File path="LUFA\Drivers\Board\MICROSIN162\LEDs.h"></File><File path="LUFA\Drivers\Board\MICROSIN162\Buttons.h"></File></Folder><Folder name="MINIMUS"><File path="LUFA\Drivers\Board\MINIMUS\Buttons.h"></File><File path="LUFA\Drivers\Board\MINIMUS\LEDs.h"></File></Folder><Folder name="OLIMEX162"><File path="LUFA\Drivers\Board\OLIMEX162\LEDs.h"></File><File path="LUFA\Drivers\Board\OLIMEX162\Buttons.h"></File></Folder><Folder name="RZUSBSTICK"><File path="LUFA\Drivers\Board\RZUSBSTICK\LEDs.h"></File></Folder><Folder name="SPARKFUN8U2"><File path="LUFA\Drivers\Board\SPARKFUN8U2\LEDs.h"></File></Folder><Folder name="STK525"><File path="LUFA\Drivers\Board\STK525\Dataflash.h"></File><File path="LUFA\Drivers\Board\STK525\Joystick.h"></File><File path="LUFA\Drivers\Board\STK525\AT45DB321C.h"></File><File path="LUFA\Drivers\Board\STK525\LEDs.h"></File><File path="LUFA\Drivers\Board\STK525\Buttons.h"></File></Folder><Folder name="STK526"><File path="LUFA\Drivers\Board\STK526\Dataflash.h"></File><File path="LUFA\Drivers\Board\STK526\Joystick.h"></File><File path="LUFA\Drivers\Board\STK526\AT45DB642D.h"></File><File path="LUFA\Drivers\Board\STK526\LEDs.h"></File><File path="LUFA\Drivers\Board\STK526\Buttons.h"></File></Folder><Folder name="TEENSY"><File path="LUFA\Drivers\Board\TEENSY\LEDs.h"></File></Folder><Folder name="UDIP"><File path="LUFA\Drivers\Board\UDIP\LEDs.h"></File><File path="LUFA\Drivers\Board\UDIP\Buttons.h"></File></Folder><Folder name="UNO"><File path="LUFA\Drivers\Board\UNO\LEDs.h"></File></Folder><Folder name="USBFOO"><File path="LUFA\Drivers\Board\USBFOO\Buttons.h"></File><File path="LUFA\Drivers\Board\USBFOO\LEDS.h"></File></Folder><Folder name="USBKEY"><File path="LUFA\Drivers\Board\USBKEY\Dataflash.h"></File><File path="LUFA\Drivers\Board\USBKEY\Joystick.h"></File><File path="LUFA\Drivers\Board\USBKEY\AT45DB642D.h"></File><File path="LUFA\Drivers\Board\USBKEY\LEDs.h"></File><File path="LUFA\Drivers\Board\USBKEY\Buttons.h"></File></Folder><Folder name="USBTINYMKII"><File path="LUFA\Drivers\Board\USBTINYMKII\LEDs.h"></File><File path="LUFA\Drivers\Board\USBTINYMKII\Buttons.h"></File></Folder><Folder name="XPLAIN"><File path="LUFA\Drivers\Board\XPLAIN\LEDs.h"></File><File path="LUFA\Drivers\Board\XPLAIN\AT45DB642D.h"></File><File path="LUFA\Drivers\Board\XPLAIN\Dataflash.h"></File></Folder><File path="LUFA\Drivers\Board\Temperature.h"></File><File path="LUFA\Drivers\Board\Dataflash.h"></File><File path="LUFA\Drivers\Board\Joystick.h"></File><File path="LUFA\Drivers\Board\Temperature.c"></File><File path="LUFA\Drivers\Board\LEDs.h"></File><File path="LUFA\Drivers\Board\Buttons.h"></File></Folder><Folder name="Peripheral"><Folder name="AVRU4U6U7"><File path="LUFA\Drivers\Peripheral\AVRU4U6U7\ADC.h"></File><File path="LUFA\Drivers\Peripheral\AVRU4U6U7\TWI.h"></File></Folder><File path="LUFA\Drivers\Peripheral\ADC.h"></File><File path="LUFA\Drivers\Peripheral\Serial.c"></File><File path="LUFA\Drivers\Peripheral\Serial.h"></File><File path="LUFA\Drivers\Peripheral\SPI.h"></File><File path="LUFA\Drivers\Peripheral\TWI.h"></File><File path="LUFA\Drivers\Peripheral\TWI.c"></File></Folder></Folder><Folder name="ManPages"><File path="LUFA\ManPages\AboutLUFA.txt"></File><File path="LUFA\ManPages\BuildingLinkableLibraries.txt"></File><File path="LUFA\ManPages\ChangeLog.txt"></File><File path="LUFA\ManPages\CompileTimeTokens.txt"></File><File path="LUFA\ManPages\DevelopingWithLUFA.txt"></File><File path="LUFA\ManPages\DeviceSupport.txt"></File><File path="LUFA\ManPages\DirectorySummaries.txt"></File><File path="LUFA\ManPages\Donating.txt"></File><File path="LUFA\ManPages\FutureChanges.txt"></File><File path="LUFA\ManPages\GettingStarted.txt"></File><File path="LUFA\ManPages\Groups.txt"></File><File path="LUFA\ManPages\LibraryResources.txt"></File><File path="LUFA\ManPages\LUFAPoweredProjects.txt"></File><File path="LUFA\ManPages\MainPage.txt"></File><File path="LUFA\ManPages\MigrationInformation.txt"></File><File path="LUFA\ManPages\VIDAndPIDValues.txt"></File><File path="LUFA\ManPages\WritingBoardDrivers.txt"></File><File path="LUFA\ManPages\ConfiguringApps.txt"></File><File path="LUFA\ManPages\CompilingApps.txt"></File><File path="LUFA\ManPages\ProgrammingApps.txt"></File><File path="LUFA\ManPages\LibraryApps.txt"></File><File path="LUFA\ManPages\WhyUseLUFA.txt"></File><File path="LUFA\ManPages\LUFAvsAtmelStack.txt"></File><File path="LUFA\ManPages\AlternativeStacks.txt"></File><File path="LUFA\ManPages\SoftwareBootloaderJump.txt"></File><File path="LUFA\ManPages\LicenseInfo.txt"></File></Folder><Folder name="Scheduler"><File path="LUFA\Scheduler\Scheduler.c"></File><File path="LUFA\Scheduler\Scheduler.h"></File></Folder><Folder name="CodeTemplates"><Folder name="DriverStubs"><File path="LUFA\CodeTemplates\DriverStubs\Buttons.h"></File><File path="LUFA\CodeTemplates\DriverStubs\Dataflash.h"></File><File path="LUFA\CodeTemplates\DriverStubs\Joystick.h"></File><File path="LUFA\CodeTemplates\DriverStubs\LEDs.h"></File></Folder><File path="LUFA\CodeTemplates\makefile_template"></File></Folder><File path="LUFA\makefile"></File><File path="LUFA\Version.h"></File><File path="LUFA\Doxygen.conf"></File><File path="LUFA\License.txt"></File></Folder><Folder name="Bootloaders"><Folder name="CDC"><File path="Bootloaders\CDC\BootloaderCDC.c"></File><File path="Bootloaders\CDC\BootloaderCDC.h"></File><File path="Bootloaders\CDC\Descriptors.c"></File><File path="Bootloaders\CDC\Descriptors.h"></File><File path="Bootloaders\CDC\makefile"></File><File path="Bootloaders\CDC\LUFA CDC Bootloader.inf"></File><File path="Bootloaders\CDC\Doxygen.conf"></File><File path="Bootloaders\CDC\BootloaderCDC.txt"></File><File path="Bootloaders\CDC\BootloaderCDC.aps"></File></Folder><Folder name="DFU"><File path="Bootloaders\DFU\BootloaderDFU.c"></File><File path="Bootloaders\DFU\BootloaderDFU.h"></File><File path="Bootloaders\DFU\Descriptors.c"></File><File path="Bootloaders\DFU\Descriptors.h"></File><File path="Bootloaders\DFU\makefile"></File><File path="Bootloaders\DFU\BootloaderDFU.txt"></File><File path="Bootloaders\DFU\Doxygen.conf"></File><File path="Bootloaders\DFU\BootloaderDFU.aps"></File></Folder><Folder name="HID"><Folder name="HostLoaderApp"><File path="Bootloaders\HID\HostLoaderApp\gpl3.txt"></File><File path="Bootloaders\HID\HostLoaderApp\Makefile"></File><File path="Bootloaders\HID\HostLoaderApp\Makefile.bsd"></File><File path="Bootloaders\HID\HostLoaderApp\hid_bootloader_cli.c"></File></Folder><File path="Bootloaders\HID\Descriptors.c"></File><File path="Bootloaders\HID\Descriptors.h"></File><File path="Bootloaders\HID\makefile"></File><File path="Bootloaders\HID\BootloaderHID.txt"></File><File path="Bootloaders\HID\BootloaderHID.c"></File><File path="Bootloaders\HID\BootloaderHID.h"></File><File path="Bootloaders\HID\Doxygen.conf"></File><File path="Bootloaders\HID\BootloaderHID.aps"></File></Folder><File path="Bootloaders\makefile"></File></Folder><Folder name="Projects"><Folder name="AVRISP-MKII"><Folder name="Lib"><Folder name="ISP"><File path="Projects\AVRISP-MKII\Lib\ISP\ISPProtocol.c"></File><File path="Projects\AVRISP-MKII\Lib\ISP\ISPProtocol.h"></File><File path="Projects\AVRISP-MKII\Lib\ISP\ISPTarget.c"></File><File path="Projects\AVRISP-MKII\Lib\ISP\ISPTarget.h"></File></Folder><Folder name="XPROG"><File path="Projects\AVRISP-MKII\Lib\XPROG\TINYNVM.c"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\TINYNVM.h"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XMEGANVM.c"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XMEGANVM.h"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XPROGProtocol.c"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XPROGProtocol.h"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XPROGTarget.c"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XPROGTarget.h"></File></Folder><File path="Projects\AVRISP-MKII\Lib\V2Protocol.c"></File><File path="Projects\AVRISP-MKII\Lib\V2Protocol.h"></File><File path="Projects\AVRISP-MKII\Lib\V2ProtocolConstants.h"></File><File path="Projects\AVRISP-MKII\Lib\V2ProtocolParams.c"></File><File path="Projects\AVRISP-MKII\Lib\V2ProtocolParams.h"></File></Folder><File path="Projects\AVRISP-MKII\Descriptors.c"></File><File path="Projects\AVRISP-MKII\Descriptors.h"></File><File path="Projects\AVRISP-MKII\Doxygen.conf"></File><File path="Projects\AVRISP-MKII\makefile"></File><File path="Projects\AVRISP-MKII\AVRISP-MKII.c"></File><File path="Projects\AVRISP-MKII\AVRISP-MKII.h"></File><File path="Projects\AVRISP-MKII\AVRISP-MKII.txt"></File><File path="Projects\AVRISP-MKII\AVRISP-MKII.aps"></File></Folder><Folder name="Benito"><File path="Projects\Benito\Benito.c"></File><File path="Projects\Benito\Benito.h"></File><File path="Projects\Benito\Descriptors.c"></File><File path="Projects\Benito\Descriptors.h"></File><File path="Projects\Benito\Doxygen.conf"></File><File path="Projects\Benito\makefile"></File><File path="Projects\Benito\Benito.txt"></File><File path="Projects\Benito\Benito Programmer.inf"></File><File path="Projects\Benito\Benito.aps"></File></Folder><Folder name="LEDNotifier"><Folder name="CPUUsageApp"><File path="Projects\LEDNotifier\CPUUsageApp\CPUMonitor.cs"></File><File path="Projects\LEDNotifier\CPUUsageApp\CPUMonitor.csproj"></File><File path="Projects\LEDNotifier\CPUUsageApp\CPUMonitor.Designer.cs"></File><File path="Projects\LEDNotifier\CPUUsageApp\CPUMonitor.resx"></File><File path="Projects\LEDNotifier\CPUUsageApp\Program.cs"></File></Folder><Folder name="HotmailNotifierApp"><File path="Projects\LEDNotifier\HotmailNotifierApp\MailNotifier.cs"></File><File path="Projects\LEDNotifier\HotmailNotifierApp\MailNotifier.csproj"></File><File path="Projects\LEDNotifier\HotmailNotifierApp\MailNotifier.Designer.cs"></File><File path="Projects\LEDNotifier\HotmailNotifierApp\MailNotifier.resx"></File><File path="Projects\LEDNotifier\HotmailNotifierApp\Program.cs"></File></Folder><Folder name="LEDMixerApp"><File path="Projects\LEDNotifier\LEDMixerApp\LEDMixer.cs"></File><File path="Projects\LEDNotifier\LEDMixerApp\LEDMixer.csproj"></File><File path="Projects\LEDNotifier\LEDMixerApp\LEDMixer.Designer.cs"></File><File path="Projects\LEDNotifier\LEDMixerApp\LEDMixer.resx"></File><File path="Projects\LEDNotifier\LEDMixerApp\Program.cs"></File></Folder><File path="Projects\LEDNotifier\Descriptors.c"></File><File path="Projects\LEDNotifier\Descriptors.h"></File><File path="Projects\LEDNotifier\Doxygen.conf"></File><File path="Projects\LEDNotifier\LEDNotifier.c"></File><File path="Projects\LEDNotifier\LEDNotifier.h"></File><File path="Projects\LEDNotifier\LEDNotifier.txt"></File><File path="Projects\LEDNotifier\LUFA LED Notifier.inf"></File><File path="Projects\LEDNotifier\makefile"></File><File path="Projects\LEDNotifier\LEDNotifier.aps"></File></Folder><Folder name="MagStripe"><Folder name="Lib"><File path="Projects\Magstripe\Lib\CircularBitBuffer.c"></File><File path="Projects\Magstripe\Lib\CircularBitBuffer.h"></File><File path="Projects\Magstripe\Lib\MagstripeHW.h"></File></Folder><File path="Projects\Magstripe\Descriptors.c"></File><File path="Projects\Magstripe\Descriptors.h"></File><File path="Projects\Magstripe\Magstripe.c"></File><File path="Projects\Magstripe\Magstripe.h"></File><File path="Projects\Magstripe\makefile"></File><File path="Projects\Magstripe\Magstripe.txt"></File><File path="Projects\Magstripe\Doxygen.conf"></File><File path="Projects\Magstripe\Magstripe.aps"></File></Folder><Folder name="MIDIToneGenerator"><File path="Projects\MIDIToneGenerator\Descriptors.c"></File><File path="Projects\MIDIToneGenerator\Descriptors.h"></File><File path="Projects\MIDIToneGenerator\makefile"></File><File path="Projects\MIDIToneGenerator\MIDIToneGenerator.c"></File><File path="Projects\MIDIToneGenerator\MIDIToneGenerator.h"></File><File path="Projects\MIDIToneGenerator\MIDIToneGenerator.txt"></File><File path="Projects\MIDIToneGenerator\MIDIToneGenerator.aps"></File></Folder><Folder name="MissileLauncher"><File path="Projects\MissileLauncher\ConfigDescriptor.c"></File><File path="Projects\MissileLauncher\ConfigDescriptor.h"></File><File path="Projects\MissileLauncher\Doxygen.conf"></File><File path="Projects\MissileLauncher\makefile"></File><File path="Projects\MissileLauncher\MissileLauncher.c"></File><File path="Projects\MissileLauncher\MissileLauncher.h"></File><File path="Projects\MissileLauncher\MissileLauncher.txt"></File><File path="Projects\MissileLauncher\MissileLauncher.aps"></File></Folder><Folder name="RelayBoard"><File path="Projects\RelayBoard\Descriptors.c"></File><File path="Projects\RelayBoard\Descriptors.h"></File><File path="Projects\RelayBoard\Doxygen.conf"></File><File path="Projects\RelayBoard\makefile"></File><File path="Projects\RelayBoard\RelayBoard.c"></File><File path="Projects\RelayBoard\RelayBoard.h"></File><File path="Projects\RelayBoard\RelayBoard.txt"></File><File path="Projects\RelayBoard\RelayBoard.aps"></File></Folder><Folder name="TempDataLogger"><Folder name="Lib"><Folder name="FATFs"><File path="Projects\TempDataLogger\Lib\FATFs\diskio.c"></File><File path="Projects\TempDataLogger\Lib\FATFs\diskio.h"></File><File path="Projects\TempDataLogger\Lib\FATFs\ff.c"></File><File path="Projects\TempDataLogger\Lib\FATFs\ff.h"></File><File path="Projects\TempDataLogger\Lib\FATFs\ffconf.h"></File><File path="Projects\TempDataLogger\Lib\FATFs\integer.h"></File></Folder><File path="Projects\TempDataLogger\Lib\DataflashManager.c"></File><File path="Projects\TempDataLogger\Lib\DataflashManager.h"></File><File path="Projects\TempDataLogger\Lib\DS1307.c"></File><File path="Projects\TempDataLogger\Lib\DS1307.h"></File><File path="Projects\TempDataLogger\Lib\SCSI.c"></File><File path="Projects\TempDataLogger\Lib\SCSI.h"></File></Folder><Folder name="TempLogHostApp"><File path="Projects\TempDataLogger\TempLogHostApp\DataLoggerSettings.cs"></File><File path="Projects\TempDataLogger\TempLogHostApp\DataLoggerSettings.Designer.cs"></File><File path="Projects\TempDataLogger\TempLogHostApp\DataLoggerSettings.resx"></File><File path="Projects\TempDataLogger\TempLogHostApp\Program.cs"></File><File path="Projects\TempDataLogger\TempLogHostApp\TempLoggerHostApp.csproj"></File></Folder><File path="Projects\TempDataLogger\Descriptors.c"></File><File path="Projects\TempDataLogger\Descriptors.h"></File><File path="Projects\TempDataLogger\Doxygen.conf"></File><File path="Projects\TempDataLogger\makefile"></File><File path="Projects\TempDataLogger\TempDataLogger.c"></File><File path="Projects\TempDataLogger\TempDataLogger.h"></File><File path="Projects\TempDataLogger\TemperatureDataLogger.txt"></File><File path="Projects\TempDataLogger\TempDataLogger.aps"></File></Folder><Folder name="USBtoSerial"><File path="Projects\USBtoSerial\Descriptors.h"></File><File path="Projects\USBtoSerial\Doxygen.conf"></File><File path="Projects\USBtoSerial\LUFA USBtoSerial.inf"></File><File path="Projects\USBtoSerial\makefile"></File><File path="Projects\USBtoSerial\USBtoSerial.c"></File><File path="Projects\USBtoSerial\USBtoSerial.h"></File><File path="Projects\USBtoSerial\USBtoSerial.txt"></File><File path="Projects\USBtoSerial\USBtoSerial.aps"></File><File path="Projects\USBtoSerial\Descriptors.c"></File></Folder><Folder name="Webserver"><Folder name="Lib"><Folder name="uip"><File path="Projects\Webserver\Lib\uip\clock.c"></File><File path="Projects\Webserver\Lib\uip\clock.h"></File><File path="Projects\Webserver\Lib\uip\timer.c"></File><File path="Projects\Webserver\Lib\uip\timer.h"></File><File path="Projects\Webserver\Lib\uip\uip.c"></File><File path="Projects\Webserver\Lib\uip\uip.h"></File><File path="Projects\Webserver\Lib\uip\uip_arp.c"></File><File path="Projects\Webserver\Lib\uip\uip_arp.h"></File><File path="Projects\Webserver\Lib\uip\uipopt.h"></File><File path="Projects\Webserver\Lib\uip\uip-split.c"></File><File path="Projects\Webserver\Lib\uip\uip-split.h"></File></Folder><Folder name="FATFs"><File path="Projects\Webserver\Lib\FATFs\diskio.c"></File><File path="Projects\Webserver\Lib\FATFs\diskio.h"></File><File path="Projects\Webserver\Lib\FATFs\ff.c"></File><File path="Projects\Webserver\Lib\FATFs\ff.h"></File><File path="Projects\Webserver\Lib\FATFs\ffconf.h"></File><File path="Projects\Webserver\Lib\FATFs\integer.h"></File></Folder><File path="Projects\Webserver\Lib\DataflashManager.c"></File><File path="Projects\Webserver\Lib\DataflashManager.h"></File><File path="Projects\Webserver\Lib\uIPManagement.c"></File><File path="Projects\Webserver\Lib\uIPManagement.h"></File><File path="Projects\Webserver\Lib\HTTPServerApp.c"></File><File path="Projects\Webserver\Lib\HTTPServerApp.h"></File><File path="Projects\Webserver\Lib\SCSI.c"></File><File path="Projects\Webserver\Lib\SCSI.h"></File><File path="Projects\Webserver\Lib\DHCPClientApp.c"></File><File path="Projects\Webserver\Lib\DHCPClientApp.h"></File><File path="Projects\Webserver\Lib\TELNETServerApp.c"></File><File path="Projects\Webserver\Lib\TELNETServerApp.h"></File></Folder><File path="Projects\Webserver\makefile"></File><File path="Projects\Webserver\Webserver.c"></File><File path="Projects\Webserver\Webserver.h"></File><File path="Projects\Webserver\Doxygen.conf"></File><File path="Projects\Webserver\Webserver.txt"></File><File path="Projects\Webserver\Descriptors.c"></File><File path="Projects\Webserver\Descriptors.h"></File><File path="Projects\Webserver\USBHostMode.c"></File><File path="Projects\Webserver\USBHostMode.h"></File><File path="Projects\Webserver\USBDeviceMode.c"></File><File path="Projects\Webserver\USBDeviceMode.h"></File><File path="Projects\Webserver\Webserver.aps"></File></Folder><Folder name="XPLAINBridge"><Folder name="Lib"><File path="Projects\XPLAINBridge\Lib\SoftUART.c"></File><File path="Projects\XPLAINBridge\Lib\SoftUART.h"></File></Folder><File path="Projects\XPLAINBridge\XPLAINBridge.txt"></File><File path="Projects\XPLAINBridge\XPLAINBridge.h"></File><File path="Projects\XPLAINBridge\XPLAINBridge.c"></File><File path="Projects\XPLAINBridge\XPLAINBridge.aps"></File><File path="Projects\XPLAINBridge\USARTDescriptors.h"></File><File path="Projects\XPLAINBridge\USARTDescriptors.c"></File><File path="Projects\XPLAINBridge\makefile"></File><File path="Projects\XPLAINBridge\LUFA XPLAIN Bridge.inf"></File><File path="Projects\XPLAINBridge\Doxygen.conf"></File><File path="Projects\XPLAINBridge\AVRISPDescriptors.h"></File><File path="Projects\XPLAINBridge\AVRISPDescriptors.c"></File></Folder><Folder name="Incomplete"><Folder name="StandaloneProgrammer"><Folder name="Lib"><Folder name="PetiteFATFs"><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\diskio.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\diskio.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\integer.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\pff.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\pff.h"></File></Folder><File path="Projects\Incomplete\StandaloneProgrammer\Lib\DataflashManager.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\DataflashManager.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\SCSI.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\SCSI.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\ProgrammerConfig.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\ProgrammerConfig.h"></File></Folder><File path="Projects\Incomplete\StandaloneProgrammer\Descriptors.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Descriptors.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\makefile"></File><File path="Projects\Incomplete\StandaloneProgrammer\StandaloneProgrammer.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\StandaloneProgrammer.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskDevice.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskDevice.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskHost.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskHost.h"></File></Folder></Folder><File path="Projects\makefile"></File></Folder><File path="makefile"></File><File path="README.txt"></File></Project>
\ No newline at end of file
+<Project name="LUFA"><Folder name="Demos"><Folder name="Device"><Folder name="ClassDriver"><Folder name="AudioInput"><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.c"></File><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.h"></File><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.txt"></File><File path="Demos\Device\ClassDriver\AudioInput\Descriptors.c"></File><File path="Demos\Device\ClassDriver\AudioInput\Descriptors.h"></File><File path="Demos\Device\ClassDriver\AudioInput\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\AudioInput\makefile"></File><File path="Demos\Device\ClassDriver\AudioInput\AudioInput.aps"></File></Folder><Folder name="AudioOutput"><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.c"></File><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.h"></File><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.txt"></File><File path="Demos\Device\ClassDriver\AudioOutput\Descriptors.c"></File><File path="Demos\Device\ClassDriver\AudioOutput\Descriptors.h"></File><File path="Demos\Device\ClassDriver\AudioOutput\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\AudioOutput\makefile"></File><File path="Demos\Device\ClassDriver\AudioOutput\AudioOutput.aps"></File></Folder><Folder name="DualVirtualSerial"><File path="Demos\Device\ClassDriver\DualVirtualSerial\Descriptors.c"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\Descriptors.h"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\DualVirtualSerial.c"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\DualVirtualSerial.h"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\DualVirtualSerial.txt"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\LUFA DualVirtualSerial.inf"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\makefile"></File><File path="Demos\Device\ClassDriver\DualVirtualSerial\DualVirtualSerial.aps"></File></Folder><Folder name="GenericHID"><File path="Demos\Device\ClassDriver\GenericHID\Descriptors.c"></File><File path="Demos\Device\ClassDriver\GenericHID\Descriptors.h"></File><File path="Demos\Device\ClassDriver\GenericHID\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.c"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.h"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.txt"></File><File path="Demos\Device\ClassDriver\GenericHID\makefile"></File><File path="Demos\Device\ClassDriver\GenericHID\GenericHID.aps"></File></Folder><Folder name="Joystick"><File path="Demos\Device\ClassDriver\Joystick\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Joystick\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Joystick\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.c"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.h"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.txt"></File><File path="Demos\Device\ClassDriver\Joystick\makefile"></File><File path="Demos\Device\ClassDriver\Joystick\Joystick.aps"></File></Folder><Folder name="Keyboard"><File path="Demos\Device\ClassDriver\Keyboard\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Keyboard\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Keyboard\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.c"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.h"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.txt"></File><File path="Demos\Device\ClassDriver\Keyboard\makefile"></File><File path="Demos\Device\ClassDriver\Keyboard\Keyboard.aps"></File></Folder><Folder name="KeyboardMouse"><File path="Demos\Device\ClassDriver\KeyboardMouse\Descriptors.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\Descriptors.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.txt"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\makefile"></File><File path="Demos\Device\ClassDriver\KeyboardMouse\KeyboardMouse.aps"></File></Folder><Folder name="KeyboardMouseMultiReport"><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\Descriptors.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\Descriptors.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\KeyboardMouseMultiReport.c"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\KeyboardMouseMultiReport.h"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\KeyboardMouseMultiReport.txt"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\makefile"></File><File path="Demos\Device\ClassDriver\KeyboardMouseMultiReport\KeyboardMouseMultiReport.aps"></File></Folder><Folder name="MassStorage"><Folder name="Lib"><File path="Demos\Device\ClassDriver\MassStorage\Lib\DataflashManager.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\DataflashManager.h"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\SCSI.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Lib\SCSI.h"></File></Folder><File path="Demos\Device\ClassDriver\MassStorage\Descriptors.c"></File><File path="Demos\Device\ClassDriver\MassStorage\Descriptors.h"></File><File path="Demos\Device\ClassDriver\MassStorage\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\MassStorage\makefile"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.c"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.h"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.txt"></File><File path="Demos\Device\ClassDriver\MassStorage\MassStorage.aps"></File></Folder><Folder name="MassStorageKeyboard"><Folder name="Lib"><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\DataflashManager.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\DataflashManager.h"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\SCSI.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\SCSI.h"></File></Folder><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Descriptors.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Descriptors.h"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\makefile"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.c"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.h"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.txt"></File><File path="Demos\Device\ClassDriver\MassStorageKeyboard\MassStorageKeyboard.aps"></File></Folder><Folder name="MIDI"><File path="Demos\Device\ClassDriver\MIDI\Descriptors.c"></File><File path="Demos\Device\ClassDriver\MIDI\Descriptors.h"></File><File path="Demos\Device\ClassDriver\MIDI\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\MIDI\makefile"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.c"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.h"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.txt"></File><File path="Demos\Device\ClassDriver\MIDI\MIDI.aps"></File></Folder><Folder name="Mouse"><File path="Demos\Device\ClassDriver\Mouse\Descriptors.c"></File><File path="Demos\Device\ClassDriver\Mouse\Descriptors.h"></File><File path="Demos\Device\ClassDriver\Mouse\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\Mouse\makefile"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.c"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.h"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.txt"></File><File path="Demos\Device\ClassDriver\Mouse\Mouse.aps"></File></Folder><Folder name="RNDISEthernet"><Folder name="Lib"><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Webserver.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ARP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ARP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\DHCP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\DHCP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Ethernet.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Ethernet.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\EthernetProtocols.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ICMP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ICMP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\IP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\IP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ProtocolDecoders.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\ProtocolDecoders.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\TCP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\TCP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\UDP.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\UDP.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Lib\Webserver.c"></File></Folder><File path="Demos\Device\ClassDriver\RNDISEthernet\Descriptors.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Descriptors.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\LUFA RNDIS.inf"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\makefile"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.c"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.h"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.txt"></File><File path="Demos\Device\ClassDriver\RNDISEthernet\RNDISEthernet.aps"></File></Folder><Folder name="VirtualSerial"><File path="Demos\Device\ClassDriver\VirtualSerial\Descriptors.c"></File><File path="Demos\Device\ClassDriver\VirtualSerial\Descriptors.h"></File><File path="Demos\Device\ClassDriver\VirtualSerial\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\VirtualSerial\LUFA VirtualSerial.inf"></File><File path="Demos\Device\ClassDriver\VirtualSerial\makefile"></File><File path="Demos\Device\ClassDriver\VirtualSerial\VirtualSerial.c"></File><File path="Demos\Device\ClassDriver\VirtualSerial\VirtualSerial.h"></File><File path="Demos\Device\ClassDriver\VirtualSerial\VirtualSerial.txt"></File><File path="Demos\Device\ClassDriver\VirtualSerial\VirtualSerial.aps"></File></Folder><Folder name="VirtualSerialMouse"><File path="Demos\Device\ClassDriver\VirtualSerialMouse\Descriptors.c"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\Descriptors.h"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\Doxygen.conf"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\LUFA VirtualSerialMouse.inf"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\makefile"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\VirtualSerialMouse.c"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\VirtualSerialMouse.h"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\VirtualSerialMouse.txt"></File><File path="Demos\Device\ClassDriver\VirtualSerialMouse\VirtualSerialMouse.aps"></File></Folder><File path="Demos\Device\ClassDriver\makefile"></File></Folder><Folder name="LowLevel"><Folder name="AudioInput"><File path="Demos\Device\LowLevel\AudioInput\AudioInput.c"></File><File path="Demos\Device\LowLevel\AudioInput\AudioInput.h"></File><File path="Demos\Device\LowLevel\AudioInput\AudioInput.txt"></File><File path="Demos\Device\LowLevel\AudioInput\Descriptors.c"></File><File path="Demos\Device\LowLevel\AudioInput\Descriptors.h"></File><File path="Demos\Device\LowLevel\AudioInput\Doxygen.conf"></File><File path="Demos\Device\LowLevel\AudioInput\makefile"></File><File path="Demos\Device\LowLevel\AudioInput\AudioInput.aps"></File></Folder><Folder name="AudioOutput"><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.c"></File><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.h"></File><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.txt"></File><File path="Demos\Device\LowLevel\AudioOutput\Descriptors.c"></File><File path="Demos\Device\LowLevel\AudioOutput\Descriptors.h"></File><File path="Demos\Device\LowLevel\AudioOutput\Doxygen.conf"></File><File path="Demos\Device\LowLevel\AudioOutput\makefile"></File><File path="Demos\Device\LowLevel\AudioOutput\AudioOutput.aps"></File></Folder><Folder name="DualVirtualSerial"><File path="Demos\Device\LowLevel\DualVirtualSerial\Descriptors.c"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\Descriptors.h"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\Doxygen.conf"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\DualVirtualSerial.c"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\DualVirtualSerial.h"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\DualVirtualSerial.txt"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\LUFA DualVirtualSerial.inf"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\makefile"></File><File path="Demos\Device\LowLevel\DualVirtualSerial\DualVirtualSerial.aps"></File></Folder><Folder name="GenericHID"><File path="Demos\Device\LowLevel\GenericHID\Descriptors.c"></File><File path="Demos\Device\LowLevel\GenericHID\Descriptors.h"></File><File path="Demos\Device\LowLevel\GenericHID\Doxygen.conf"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.c"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.h"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.txt"></File><File path="Demos\Device\LowLevel\GenericHID\makefile"></File><File path="Demos\Device\LowLevel\GenericHID\GenericHID.aps"></File></Folder><Folder name="Joystick"><File path="Demos\Device\LowLevel\Joystick\Descriptors.c"></File><File path="Demos\Device\LowLevel\Joystick\Descriptors.h"></File><File path="Demos\Device\LowLevel\Joystick\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.c"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.h"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.txt"></File><File path="Demos\Device\LowLevel\Joystick\makefile"></File><File path="Demos\Device\LowLevel\Joystick\Joystick.aps"></File></Folder><Folder name="Keyboard"><File path="Demos\Device\LowLevel\Keyboard\Descriptors.c"></File><File path="Demos\Device\LowLevel\Keyboard\Descriptors.h"></File><File path="Demos\Device\LowLevel\Keyboard\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.c"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.h"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.txt"></File><File path="Demos\Device\LowLevel\Keyboard\makefile"></File><File path="Demos\Device\LowLevel\Keyboard\Keyboard.aps"></File></Folder><Folder name="KeyboardMouse"><File path="Demos\Device\LowLevel\KeyboardMouse\Descriptors.c"></File><File path="Demos\Device\LowLevel\KeyboardMouse\Descriptors.h"></File><File path="Demos\Device\LowLevel\KeyboardMouse\Doxygen.conf"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.c"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.h"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.txt"></File><File path="Demos\Device\LowLevel\KeyboardMouse\makefile"></File><File path="Demos\Device\LowLevel\KeyboardMouse\KeyboardMouse.aps"></File></Folder><Folder name="MassStorage"><Folder name="Lib"><File path="Demos\Device\LowLevel\MassStorage\Lib\DataflashManager.c"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\DataflashManager.h"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI.c"></File><File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI.h"></File></Folder><File path="Demos\Device\LowLevel\MassStorage\Descriptors.c"></File><File path="Demos\Device\LowLevel\MassStorage\Descriptors.h"></File><File path="Demos\Device\LowLevel\MassStorage\Doxygen.conf"></File><File path="Demos\Device\LowLevel\MassStorage\makefile"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.c"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.h"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.txt"></File><File path="Demos\Device\LowLevel\MassStorage\MassStorage.aps"></File></Folder><Folder name="MIDI"><File path="Demos\Device\LowLevel\MIDI\Descriptors.c"></File><File path="Demos\Device\LowLevel\MIDI\Descriptors.h"></File><File path="Demos\Device\LowLevel\MIDI\Doxygen.conf"></File><File path="Demos\Device\LowLevel\MIDI\makefile"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.c"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.h"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.txt"></File><File path="Demos\Device\LowLevel\MIDI\MIDI.aps"></File></Folder><Folder name="Mouse"><File path="Demos\Device\LowLevel\Mouse\Descriptors.c"></File><File path="Demos\Device\LowLevel\Mouse\Descriptors.h"></File><File path="Demos\Device\LowLevel\Mouse\Doxygen.conf"></File><File path="Demos\Device\LowLevel\Mouse\makefile"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.c"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.h"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.txt"></File><File path="Demos\Device\LowLevel\Mouse\Mouse.aps"></File></Folder><Folder name="RNDISEthernet"><Folder name="Lib"><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Webserver.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ARP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ARP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\DHCP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\DHCP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Ethernet.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Ethernet.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\EthernetProtocols.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ICMP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ICMP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\IP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\IP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ProtocolDecoders.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\ProtocolDecoders.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\RNDIS.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\RNDIS.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\TCP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\TCP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\UDP.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\UDP.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Lib\Webserver.c"></File></Folder><File path="Demos\Device\LowLevel\RNDISEthernet\Descriptors.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Descriptors.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\Doxygen.conf"></File><File path="Demos\Device\LowLevel\RNDISEthernet\LUFA RNDIS.inf"></File><File path="Demos\Device\LowLevel\RNDISEthernet\makefile"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.c"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.h"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.txt"></File><File path="Demos\Device\LowLevel\RNDISEthernet\RNDISEthernet.aps"></File></Folder><Folder name="VirtualSerial"><File path="Demos\Device\LowLevel\VirtualSerial\Descriptors.c"></File><File path="Demos\Device\LowLevel\VirtualSerial\Descriptors.h"></File><File path="Demos\Device\LowLevel\VirtualSerial\Doxygen.conf"></File><File path="Demos\Device\LowLevel\VirtualSerial\LUFA VirtualSerial.inf"></File><File path="Demos\Device\LowLevel\VirtualSerial\makefile"></File><File path="Demos\Device\LowLevel\VirtualSerial\VirtualSerial.c"></File><File path="Demos\Device\LowLevel\VirtualSerial\VirtualSerial.h"></File><File path="Demos\Device\LowLevel\VirtualSerial\VirtualSerial.txt"></File><File path="Demos\Device\LowLevel\VirtualSerial\VirtualSerial.aps"></File></Folder><File path="Demos\Device\LowLevel\makefile"></File></Folder><Folder name="Incomplete"><Folder name="SideShow"><Folder name="Lib"><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowApplications.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowApplications.h"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommands.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommands.h"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommon.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowCommon.h"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowContent.c"></File><File path="Demos\Device\Incomplete\Sideshow\Lib\SideshowContent.h"></File></Folder><File path="Demos\Device\Incomplete\Sideshow\Descriptors.c"></File><File path="Demos\Device\Incomplete\Sideshow\Descriptors.h"></File><File path="Demos\Device\Incomplete\Sideshow\makefile"></File><File path="Demos\Device\Incomplete\Sideshow\Sideshow.c"></File><File path="Demos\Device\Incomplete\Sideshow\Sideshow.h"></File></Folder><Folder name="TestAndMeasurement"><File path="Demos\Device\Incomplete\TestAndMeasurement\Descriptors.c"></File><File path="Demos\Device\Incomplete\TestAndMeasurement\Descriptors.h"></File><File path="Demos\Device\Incomplete\TestAndMeasurement\TestAndMeasurement.c"></File><File path="Demos\Device\Incomplete\TestAndMeasurement\TestAndMeasurement.h"></File><File path="Demos\Device\Incomplete\TestAndMeasurement\makefile"></File></Folder></Folder><File path="Demos\Device\makefile"></File></Folder><Folder name="Host"><Folder name="ClassDriver"><Folder name="JoystickHostWithParser"><File path="Demos\Host\ClassDriver\JoystickHostWithParser\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.c"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.h"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.txt"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\makefile"></File><File path="Demos\Host\ClassDriver\JoystickHostWithParser\JoystickHostWithParser.aps"></File></Folder><Folder name="KeyboardHost"><File path="Demos\Host\ClassDriver\KeyboardHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.c"></File><File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.h"></File><File path="Demos\Host\ClassDriver\KeyboardHost\makefile"></File><File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.txt"></File><File path="Demos\Host\ClassDriver\KeyboardHost\KeyboardHost.aps"></File></Folder><Folder name="KeyboardHostWithParser"><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.c"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.h"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\makefile"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.txt"></File><File path="Demos\Host\ClassDriver\KeyboardHostWithParser\KeyboardHostWithParser.aps"></File></Folder><Folder name="MassStorageHost"><File path="Demos\Host\ClassDriver\MassStorageHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MassStorageHost\makefile"></File><File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.c"></File><File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.h"></File><File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.txt"></File><File path="Demos\Host\ClassDriver\MassStorageHost\MassStorageHost.aps"></File></Folder><Folder name="MIDIHost"><File path="Demos\Host\ClassDriver\MIDIHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MIDIHost\makefile"></File><File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.c"></File><File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.h"></File><File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.txt"></File><File path="Demos\Host\ClassDriver\MIDIHost\MIDIHost.aps"></File></Folder><Folder name="MouseHost"><File path="Demos\Host\ClassDriver\MouseHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MouseHost\makefile"></File><File path="Demos\Host\ClassDriver\MouseHost\MouseHost.c"></File><File path="Demos\Host\ClassDriver\MouseHost\MouseHost.h"></File><File path="Demos\Host\ClassDriver\MouseHost\MouseHost.txt"></File><File path="Demos\Host\ClassDriver\MouseHost\MouseHost.aps"></File></Folder><Folder name="MouseHostWithParser"><File path="Demos\Host\ClassDriver\MouseHostWithParser\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\makefile"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.txt"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.c"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.h"></File><File path="Demos\Host\ClassDriver\MouseHostWithParser\MouseHostWithParser.aps"></File></Folder><Folder name="PrinterHost"><File path="Demos\Host\ClassDriver\PrinterHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\PrinterHost\makefile"></File><File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.c"></File><File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.h"></File><File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.txt"></File><File path="Demos\Host\ClassDriver\PrinterHost\PrinterHost.aps"></File></Folder><Folder name="RNDISEthernetHost"><File path="Demos\Host\ClassDriver\RNDISEthernetHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\RNDISEthernetHost\makefile"></File><File path="Demos\Host\ClassDriver\RNDISEthernetHost\RNDISEthernetHost.c"></File><File path="Demos\Host\ClassDriver\RNDISEthernetHost\RNDISEthernetHost.h"></File><File path="Demos\Host\ClassDriver\RNDISEthernetHost\RNDISEthernetHost.txt"></File><File path="Demos\Host\ClassDriver\RNDISEthernetHost\RNDISEthernetHost.aps"></File></Folder><Folder name="StillImageHost"><File path="Demos\Host\ClassDriver\StillImageHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\StillImageHost\makefile"></File><File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.c"></File><File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.h"></File><File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.txt"></File><File path="Demos\Host\ClassDriver\StillImageHost\StillImageHost.aps"></File></Folder><Folder name="VirtualSerialHost"><File path="Demos\Host\ClassDriver\VirtualSerialHost\Doxygen.conf"></File><File path="Demos\Host\ClassDriver\VirtualSerialHost\makefile"></File><File path="Demos\Host\ClassDriver\VirtualSerialHost\VirtualSerialHost.c"></File><File path="Demos\Host\ClassDriver\VirtualSerialHost\VirtualSerialHost.h"></File><File path="Demos\Host\ClassDriver\VirtualSerialHost\VirtualSerialHost.txt"></File><File path="Demos\Host\ClassDriver\VirtualSerialHost\VirtualSerialHost.aps"></File></Folder><File path="Demos\Host\ClassDriver\makefile"></File></Folder><Folder name="LowLevel"><Folder name="GenericHIDHost"><File path="Demos\Host\LowLevel\GenericHIDHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\GenericHIDHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\GenericHIDHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.c"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.h"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.txt"></File><File path="Demos\Host\LowLevel\GenericHIDHost\makefile"></File><File path="Demos\Host\LowLevel\GenericHIDHost\GenericHIDHost.aps"></File></Folder><Folder name="JoystickHostWithParser"><File path="Demos\Host\LowLevel\JoystickHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\Doxygen.conf"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\HIDReport.c"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\HIDReport.h"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.c"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.h"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.txt"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\makefile"></File><File path="Demos\Host\LowLevel\JoystickHostWithParser\JoystickHostWithParser.aps"></File></Folder><Folder name="KeyboardHost"><File path="Demos\Host\LowLevel\KeyboardHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\KeyboardHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\KeyboardHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.c"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.h"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.txt"></File><File path="Demos\Host\LowLevel\KeyboardHost\makefile"></File><File path="Demos\Host\LowLevel\KeyboardHost\KeyboardHost.aps"></File></Folder><Folder name="KeyboardHostWithParser"><File path="Demos\Host\LowLevel\KeyboardHostWithParser\makefile"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\Doxygen.conf"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\HIDReport.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\HIDReport.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.c"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.h"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.txt"></File><File path="Demos\Host\LowLevel\KeyboardHostWithParser\KeyboardHostWithParser.aps"></File></Folder><Folder name="MassStorageHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\MassStorageHost\Lib\MassStoreCommands.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\Lib\MassStoreCommands.h"></File></Folder><File path="Demos\Host\LowLevel\MassStorageHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MassStorageHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MassStorageHost\makefile"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.c"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.h"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.txt"></File><File path="Demos\Host\LowLevel\MassStorageHost\MassStorageHost.aps"></File></Folder><Folder name="MIDIHost"><File path="Demos\Host\LowLevel\MIDIHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MIDIHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MIDIHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MIDIHost\makefile"></File><File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.c"></File><File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.h"></File><File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.txt"></File><File path="Demos\Host\LowLevel\MIDIHost\MIDIHost.aps"></File></Folder><Folder name="MouseHost"><File path="Demos\Host\LowLevel\MouseHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MouseHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MouseHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MouseHost\makefile"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.c"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.h"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.txt"></File><File path="Demos\Host\LowLevel\MouseHost\MouseHost.aps"></File></Folder><Folder name="MouseHostWithParser"><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.txt"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\Doxygen.conf"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\HIDReport.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\HIDReport.h"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\makefile"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.c"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.h"></File><File path="Demos\Host\LowLevel\MouseHostWithParser\MouseHostWithParser.aps"></File></Folder><Folder name="PrinterHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\PrinterHost\Lib\PrinterCommands.c"></File><File path="Demos\Host\LowLevel\PrinterHost\Lib\PrinterCommands.h"></File></Folder><File path="Demos\Host\LowLevel\PrinterHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\PrinterHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\PrinterHost\makefile"></File><File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.c"></File><File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.h"></File><File path="Demos\Host\LowLevel\PrinterHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.txt"></File><File path="Demos\Host\LowLevel\PrinterHost\PrinterHost.aps"></File></Folder><Folder name="RNDISEthernetHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\RNDISEthernetHost\Lib\RNDISCommands.c"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\Lib\RNDISCommands.h"></File></Folder><File path="Demos\Host\LowLevel\RNDISEthernetHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\makefile"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\RNDISEthernetHost.c"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\RNDISEthernetHost.h"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\RNDISHost.txt"></File><File path="Demos\Host\LowLevel\RNDISEthernetHost\RNDISEthernetHost.aps"></File></Folder><Folder name="StillImageHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.c"></File><File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.h"></File><File path="Demos\Host\LowLevel\StillImageHost\Lib\PIMACodes.h"></File></Folder><File path="Demos\Host\LowLevel\StillImageHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\StillImageHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\StillImageHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\StillImageHost\makefile"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.c"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.h"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.txt"></File><File path="Demos\Host\LowLevel\StillImageHost\StillImageHost.aps"></File></Folder><Folder name="VirtualSerialHost"><File path="Demos\Host\LowLevel\VirtualSerialHost\ConfigDescriptor.c"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\ConfigDescriptor.h"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\Doxygen.conf"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\makefile"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\VirtualSerialHost.c"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\VirtualSerialHost.h"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\VirtualSerialHost.txt"></File><File path="Demos\Host\LowLevel\VirtualSerialHost\VirtualSerialHost.aps"></File></Folder><File path="Demos\Host\LowLevel\makefile"></File></Folder><Folder name="Incomplete"><Folder name="BluetoothHost"><Folder name="Lib"><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothACLPackets.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothACLPackets.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothClassCodes.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothHCICommands.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothHCICommands.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothStack.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\BluetoothStack.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\SDPServices.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\SDPServices.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\RFCOMM.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\RFCOMM.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\SDP.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\SDP.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\RFCOMMControl.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\Lib\RFCOMMControl.h"></File></Folder><File path="Demos\Host\Incomplete\BluetoothHost\makefile"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothHost.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothHost.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\ConfigDescriptor.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\ConfigDescriptor.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\DeviceDescriptor.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\DeviceDescriptor.h"></File><File path="Demos\Host\Incomplete\BluetoothHost\Doxygen.conf"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothEvents.c"></File><File path="Demos\Host\Incomplete\BluetoothHost\BluetoothEvents.h"></File></Folder></Folder><File path="Demos\Host\makefile"></File></Folder><Folder name="DualRole"><Folder name="ClassDriver"><Folder name="MouseHostDevice"><File path="Demos\DualRole\ClassDriver\MouseHostDevice\Doxygen.conf"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\makefile"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\Descriptors.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\Descriptors.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\DeviceFunctions.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\HostFunctions.c"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\HostFunctions.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\DeviceFunctions.h"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.txt"></File><File path="Demos\DualRole\ClassDriver\MouseHostDevice\MouseHostDevice.aps"></File></Folder><File path="Demos\DualRole\ClassDriver\makefile"></File></Folder><File path="Demos\DualRole\makefile"></File></Folder><File path="Demos\makefile"></File></Folder><Folder name="LUFA"><Folder name="Common"><File path="LUFA\Common\Common.h"></File><File path="LUFA\Common\BoardTypes.h"></File><File path="LUFA\Common\Attributes.h"></File><File path="LUFA\Common\Architectures.h"></File></Folder><Folder name="Drivers"><Folder name="USB"><Folder name="LowLevel"><File path="LUFA\Drivers\USB\LowLevel\Pipe.c"></File><File path="LUFA\Drivers\USB\LowLevel\Pipe.h"></File><File path="LUFA\Drivers\USB\LowLevel\Device.h"></File><File path="LUFA\Drivers\USB\LowLevel\Endpoint.c"></File><File path="LUFA\Drivers\USB\LowLevel\Endpoint.h"></File><File path="LUFA\Drivers\USB\LowLevel\Host.c"></File><File path="LUFA\Drivers\USB\LowLevel\Host.h"></File><File path="LUFA\Drivers\USB\LowLevel\OTG.h"></File><File path="LUFA\Drivers\USB\LowLevel\USBInterrupt.c"></File><File path="LUFA\Drivers\USB\LowLevel\USBInterrupt.h"></File><File path="LUFA\Drivers\USB\LowLevel\Device.c"></File><File path="LUFA\Drivers\USB\LowLevel\USBController.c"></File><File path="LUFA\Drivers\USB\LowLevel\USBController.h"></File></Folder><Folder name="HighLevel"><Folder name="Template"><File path="LUFA\Drivers\USB\HighLevel\Template\Template_Pipe_RW.c"></File><File path="LUFA\Drivers\USB\HighLevel\Template\Template_Endpoint_RW.c"></File><File path="LUFA\Drivers\USB\HighLevel\Template\Template_Endpoint_Control_W.c"></File><File path="LUFA\Drivers\USB\HighLevel\Template\Template_Endpoint_Control_R.c"></File></Folder><File path="LUFA\Drivers\USB\HighLevel\USBTask.h"></File><File path="LUFA\Drivers\USB\HighLevel\Events.c"></File><File path="LUFA\Drivers\USB\HighLevel\Events.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBTask.c"></File><File path="LUFA\Drivers\USB\HighLevel\StdDescriptors.h"></File><File path="LUFA\Drivers\USB\HighLevel\StdRequestType.h"></File><File path="LUFA\Drivers\USB\HighLevel\USBMode.h"></File><File path="LUFA\Drivers\USB\HighLevel\ConfigDescriptor.c"></File><File path="LUFA\Drivers\USB\HighLevel\ConfigDescriptor.h"></File><File path="LUFA\Drivers\USB\HighLevel\DeviceStandardReq.c"></File><File path="LUFA\Drivers\USB\HighLevel\DeviceStandardReq.h"></File><File path="LUFA\Drivers\USB\HighLevel\HostStandardReq.c"></File><File path="LUFA\Drivers\USB\HighLevel\HostStandardReq.h"></File><File path="LUFA\Drivers\USB\HighLevel\EndpointStream.h"></File><File path="LUFA\Drivers\USB\HighLevel\EndpointStream.c"></File><File path="LUFA\Drivers\USB\HighLevel\PipeStream.h"></File><File path="LUFA\Drivers\USB\HighLevel\PipeStream.c"></File></Folder><Folder name="Class"><Folder name="Device"><File path="LUFA\Drivers\USB\Class\Device\HID.c"></File><File path="LUFA\Drivers\USB\Class\Device\HID.h"></File><File path="LUFA\Drivers\USB\Class\Device\CDC.c"></File><File path="LUFA\Drivers\USB\Class\Device\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Device\RNDIS.c"></File><File path="LUFA\Drivers\USB\Class\Device\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\Device\MassStorage.c"></File><File path="LUFA\Drivers\USB\Class\Device\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Device\Audio.c"></File><File path="LUFA\Drivers\USB\Class\Device\Audio.h"></File><File path="LUFA\Drivers\USB\Class\Device\MIDI.c"></File><File path="LUFA\Drivers\USB\Class\Device\MIDI.h"></File></Folder><Folder name="Host"><File path="LUFA\Drivers\USB\Class\Host\CDC.c"></File><File path="LUFA\Drivers\USB\Class\Host\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Host\HID.c"></File><File path="LUFA\Drivers\USB\Class\Host\HID.h"></File><File path="LUFA\Drivers\USB\Class\Host\MassStorage.c"></File><File path="LUFA\Drivers\USB\Class\Host\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Host\StillImage.c"></File><File path="LUFA\Drivers\USB\Class\Host\StillImage.h"></File><File path="LUFA\Drivers\USB\Class\Host\MIDI.c"></File><File path="LUFA\Drivers\USB\Class\Host\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\Host\Printer.c"></File><File path="LUFA\Drivers\USB\Class\Host\Printer.h"></File><File path="LUFA\Drivers\USB\Class\Host\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\Host\RNDIS.c"></File></Folder><Folder name="Common"><File path="LUFA\Drivers\USB\Class\Common\Audio.h"></File><File path="LUFA\Drivers\USB\Class\Common\CDC.h"></File><File path="LUFA\Drivers\USB\Class\Common\HID.h"></File><File path="LUFA\Drivers\USB\Class\Common\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\Common\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\Common\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\Common\StillImage.h"></File><File path="LUFA\Drivers\USB\Class\Common\Printer.h"></File><File path="LUFA\Drivers\USB\Class\Common\HIDParser.c"></File><File path="LUFA\Drivers\USB\Class\Common\HIDParser.h"></File><File path="LUFA\Drivers\USB\Class\Common\HIDReportData.h"></File></Folder><File path="LUFA\Drivers\USB\Class\Audio.h"></File><File path="LUFA\Drivers\USB\Class\CDC.h"></File><File path="LUFA\Drivers\USB\Class\HID.h"></File><File path="LUFA\Drivers\USB\Class\MassStorage.h"></File><File path="LUFA\Drivers\USB\Class\MIDI.h"></File><File path="LUFA\Drivers\USB\Class\RNDIS.h"></File><File path="LUFA\Drivers\USB\Class\StillImage.h"></File><File path="LUFA\Drivers\USB\Class\Printer.h"></File></Folder><File path="LUFA\Drivers\USB\USB.h"></File></Folder><Folder name="Misc"><File path="LUFA\Drivers\Misc\TerminalCodes.h"></File><File path="LUFA\Drivers\Misc\RingBuffer.h"></File></Folder><Folder name="Board"><Folder name="ADAFRUITU4"><File path="LUFA\Drivers\Board\ADAFRUITU4\LEDs.h"></File></Folder><Folder name="ATAVRUSBRF01"><File path="LUFA\Drivers\Board\ATAVRUSBRF01\LEDs.h"></File><File path="LUFA\Drivers\Board\ATAVRUSBRF01\Buttons.h"></File></Folder><Folder name="BENITO"><File path="LUFA\Drivers\Board\BENITO\LEDs.h"></File><File path="LUFA\Drivers\Board\BENITO\Buttons.h"></File></Folder><Folder name="BUMBLEB"><File path="LUFA\Drivers\Board\BUMBLEB\Buttons.h"></File><File path="LUFA\Drivers\Board\BUMBLEB\Joystick.h"></File><File path="LUFA\Drivers\Board\BUMBLEB\LEDs.h"></File></Folder><Folder name="BUI"><File path="LUFA\Drivers\Board\BUI\LEDs.h"></File></Folder><Folder name="BLACKCAT"><File path="LUFA\Drivers\Board\BLACKCAT\LEDs.h"></File></Folder><Folder name="CULV3"><File path="LUFA\Drivers\Board\CULV3\Buttons.h"></File><File path="LUFA\Drivers\Board\CULV3\LEDs.h"></File></Folder><Folder name="EVK527"><File path="LUFA\Drivers\Board\EVK527\Buttons.h"></File><File path="LUFA\Drivers\Board\EVK527\LEDs.h"></File><File path="LUFA\Drivers\Board\EVK527\Joystick.h"></File><File path="LUFA\Drivers\Board\EVK527\AT45DB321C.h"></File><File path="LUFA\Drivers\Board\EVK527\Dataflash.h"></File></Folder><Folder name="JMDBU2"><File path="LUFA\Drivers\Board\JMDBU2\Buttons.h"></File><File path="LUFA\Drivers\Board\JMDBU2\LEDs.h"></File></Folder><Folder name="MAXIMUS"><File path="LUFA\Drivers\Board\MAXIMUS\LEDs.h"></File></Folder><Folder name="MICROSIN162"><File path="LUFA\Drivers\Board\MICROSIN162\LEDs.h"></File><File path="LUFA\Drivers\Board\MICROSIN162\Buttons.h"></File></Folder><Folder name="MINIMUS"><File path="LUFA\Drivers\Board\MINIMUS\Buttons.h"></File><File path="LUFA\Drivers\Board\MINIMUS\LEDs.h"></File></Folder><Folder name="OLIMEX162"><File path="LUFA\Drivers\Board\OLIMEX162\LEDs.h"></File><File path="LUFA\Drivers\Board\OLIMEX162\Buttons.h"></File></Folder><Folder name="RZUSBSTICK"><File path="LUFA\Drivers\Board\RZUSBSTICK\LEDs.h"></File></Folder><Folder name="SPARKFUN8U2"><File path="LUFA\Drivers\Board\SPARKFUN8U2\LEDs.h"></File></Folder><Folder name="STK525"><File path="LUFA\Drivers\Board\STK525\Dataflash.h"></File><File path="LUFA\Drivers\Board\STK525\Joystick.h"></File><File path="LUFA\Drivers\Board\STK525\AT45DB321C.h"></File><File path="LUFA\Drivers\Board\STK525\LEDs.h"></File><File path="LUFA\Drivers\Board\STK525\Buttons.h"></File></Folder><Folder name="STK526"><File path="LUFA\Drivers\Board\STK526\Dataflash.h"></File><File path="LUFA\Drivers\Board\STK526\Joystick.h"></File><File path="LUFA\Drivers\Board\STK526\AT45DB642D.h"></File><File path="LUFA\Drivers\Board\STK526\LEDs.h"></File><File path="LUFA\Drivers\Board\STK526\Buttons.h"></File></Folder><Folder name="TEENSY"><File path="LUFA\Drivers\Board\TEENSY\LEDs.h"></File></Folder><Folder name="UDIP"><File path="LUFA\Drivers\Board\UDIP\LEDs.h"></File><File path="LUFA\Drivers\Board\UDIP\Buttons.h"></File></Folder><Folder name="UNO"><File path="LUFA\Drivers\Board\UNO\LEDs.h"></File></Folder><Folder name="USBFOO"><File path="LUFA\Drivers\Board\USBFOO\Buttons.h"></File><File path="LUFA\Drivers\Board\USBFOO\LEDS.h"></File></Folder><Folder name="USBKEY"><File path="LUFA\Drivers\Board\USBKEY\Dataflash.h"></File><File path="LUFA\Drivers\Board\USBKEY\Joystick.h"></File><File path="LUFA\Drivers\Board\USBKEY\AT45DB642D.h"></File><File path="LUFA\Drivers\Board\USBKEY\LEDs.h"></File><File path="LUFA\Drivers\Board\USBKEY\Buttons.h"></File></Folder><Folder name="USBTINYMKII"><File path="LUFA\Drivers\Board\USBTINYMKII\LEDs.h"></File><File path="LUFA\Drivers\Board\USBTINYMKII\Buttons.h"></File></Folder><Folder name="XPLAIN"><File path="LUFA\Drivers\Board\XPLAIN\LEDs.h"></File><File path="LUFA\Drivers\Board\XPLAIN\AT45DB642D.h"></File><File path="LUFA\Drivers\Board\XPLAIN\Dataflash.h"></File></Folder><File path="LUFA\Drivers\Board\Temperature.h"></File><File path="LUFA\Drivers\Board\Dataflash.h"></File><File path="LUFA\Drivers\Board\Joystick.h"></File><File path="LUFA\Drivers\Board\Temperature.c"></File><File path="LUFA\Drivers\Board\LEDs.h"></File><File path="LUFA\Drivers\Board\Buttons.h"></File></Folder><Folder name="Peripheral"><Folder name="AVR8"><File path="LUFA\Drivers\Peripheral\AVR8\ADC.h"></File><File path="LUFA\Drivers\Peripheral\AVR8\Serial.c"></File><File path="LUFA\Drivers\Peripheral\AVR8\Serial.h"></File><File path="LUFA\Drivers\Peripheral\AVR8\SPI.h"></File><File path="LUFA\Drivers\Peripheral\AVR8\TWI.c"></File><File path="LUFA\Drivers\Peripheral\AVR8\TWI.h"></File></Folder><File path="LUFA\Drivers\Peripheral\ADC.h"></File><File path="LUFA\Drivers\Peripheral\TWI.h"></File><File path="LUFA\Drivers\Peripheral\Serial.h"></File><File path="LUFA\Drivers\Peripheral\SPI.h"></File></Folder></Folder><Folder name="ManPages"><File path="LUFA\ManPages\AboutLUFA.txt"></File><File path="LUFA\ManPages\BuildingLinkableLibraries.txt"></File><File path="LUFA\ManPages\ChangeLog.txt"></File><File path="LUFA\ManPages\CompileTimeTokens.txt"></File><File path="LUFA\ManPages\DevelopingWithLUFA.txt"></File><File path="LUFA\ManPages\DeviceSupport.txt"></File><File path="LUFA\ManPages\DirectorySummaries.txt"></File><File path="LUFA\ManPages\Donating.txt"></File><File path="LUFA\ManPages\FutureChanges.txt"></File><File path="LUFA\ManPages\GettingStarted.txt"></File><File path="LUFA\ManPages\Groups.txt"></File><File path="LUFA\ManPages\LibraryResources.txt"></File><File path="LUFA\ManPages\LUFAPoweredProjects.txt"></File><File path="LUFA\ManPages\MainPage.txt"></File><File path="LUFA\ManPages\MigrationInformation.txt"></File><File path="LUFA\ManPages\VIDAndPIDValues.txt"></File><File path="LUFA\ManPages\WritingBoardDrivers.txt"></File><File path="LUFA\ManPages\ConfiguringApps.txt"></File><File path="LUFA\ManPages\CompilingApps.txt"></File><File path="LUFA\ManPages\ProgrammingApps.txt"></File><File path="LUFA\ManPages\LibraryApps.txt"></File><File path="LUFA\ManPages\WhyUseLUFA.txt"></File><File path="LUFA\ManPages\LUFAvsAtmelStack.txt"></File><File path="LUFA\ManPages\AlternativeStacks.txt"></File><File path="LUFA\ManPages\SoftwareBootloaderJump.txt"></File><File path="LUFA\ManPages\LicenseInfo.txt"></File></Folder><Folder name="Scheduler"><File path="LUFA\Scheduler\Scheduler.c"></File><File path="LUFA\Scheduler\Scheduler.h"></File></Folder><Folder name="CodeTemplates"><Folder name="DriverStubs"><File path="LUFA\CodeTemplates\DriverStubs\Buttons.h"></File><File path="LUFA\CodeTemplates\DriverStubs\Dataflash.h"></File><File path="LUFA\CodeTemplates\DriverStubs\Joystick.h"></File><File path="LUFA\CodeTemplates\DriverStubs\LEDs.h"></File></Folder><File path="LUFA\CodeTemplates\makefile_template"></File></Folder><File path="LUFA\makefile"></File><File path="LUFA\Version.h"></File><File path="LUFA\Doxygen.conf"></File><File path="LUFA\License.txt"></File></Folder><Folder name="Bootloaders"><Folder name="CDC"><File path="Bootloaders\CDC\BootloaderCDC.c"></File><File path="Bootloaders\CDC\BootloaderCDC.h"></File><File path="Bootloaders\CDC\Descriptors.c"></File><File path="Bootloaders\CDC\Descriptors.h"></File><File path="Bootloaders\CDC\makefile"></File><File path="Bootloaders\CDC\LUFA CDC Bootloader.inf"></File><File path="Bootloaders\CDC\Doxygen.conf"></File><File path="Bootloaders\CDC\BootloaderCDC.txt"></File><File path="Bootloaders\CDC\BootloaderCDC.aps"></File></Folder><Folder name="DFU"><File path="Bootloaders\DFU\BootloaderDFU.c"></File><File path="Bootloaders\DFU\BootloaderDFU.h"></File><File path="Bootloaders\DFU\Descriptors.c"></File><File path="Bootloaders\DFU\Descriptors.h"></File><File path="Bootloaders\DFU\makefile"></File><File path="Bootloaders\DFU\BootloaderDFU.txt"></File><File path="Bootloaders\DFU\Doxygen.conf"></File><File path="Bootloaders\DFU\BootloaderDFU.aps"></File></Folder><Folder name="HID"><Folder name="HostLoaderApp"><File path="Bootloaders\HID\HostLoaderApp\gpl3.txt"></File><File path="Bootloaders\HID\HostLoaderApp\Makefile"></File><File path="Bootloaders\HID\HostLoaderApp\Makefile.bsd"></File><File path="Bootloaders\HID\HostLoaderApp\hid_bootloader_cli.c"></File></Folder><File path="Bootloaders\HID\Descriptors.c"></File><File path="Bootloaders\HID\Descriptors.h"></File><File path="Bootloaders\HID\makefile"></File><File path="Bootloaders\HID\BootloaderHID.txt"></File><File path="Bootloaders\HID\BootloaderHID.c"></File><File path="Bootloaders\HID\BootloaderHID.h"></File><File path="Bootloaders\HID\Doxygen.conf"></File><File path="Bootloaders\HID\BootloaderHID.aps"></File></Folder><File path="Bootloaders\makefile"></File></Folder><Folder name="Projects"><Folder name="AVRISP-MKII"><Folder name="Lib"><Folder name="ISP"><File path="Projects\AVRISP-MKII\Lib\ISP\ISPProtocol.c"></File><File path="Projects\AVRISP-MKII\Lib\ISP\ISPProtocol.h"></File><File path="Projects\AVRISP-MKII\Lib\ISP\ISPTarget.c"></File><File path="Projects\AVRISP-MKII\Lib\ISP\ISPTarget.h"></File></Folder><Folder name="XPROG"><File path="Projects\AVRISP-MKII\Lib\XPROG\TINYNVM.c"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\TINYNVM.h"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XMEGANVM.c"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XMEGANVM.h"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XPROGProtocol.c"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XPROGProtocol.h"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XPROGTarget.c"></File><File path="Projects\AVRISP-MKII\Lib\XPROG\XPROGTarget.h"></File></Folder><File path="Projects\AVRISP-MKII\Lib\V2Protocol.c"></File><File path="Projects\AVRISP-MKII\Lib\V2Protocol.h"></File><File path="Projects\AVRISP-MKII\Lib\V2ProtocolConstants.h"></File><File path="Projects\AVRISP-MKII\Lib\V2ProtocolParams.c"></File><File path="Projects\AVRISP-MKII\Lib\V2ProtocolParams.h"></File></Folder><File path="Projects\AVRISP-MKII\Descriptors.c"></File><File path="Projects\AVRISP-MKII\Descriptors.h"></File><File path="Projects\AVRISP-MKII\Doxygen.conf"></File><File path="Projects\AVRISP-MKII\makefile"></File><File path="Projects\AVRISP-MKII\AVRISP-MKII.c"></File><File path="Projects\AVRISP-MKII\AVRISP-MKII.h"></File><File path="Projects\AVRISP-MKII\AVRISP-MKII.txt"></File><File path="Projects\AVRISP-MKII\AVRISP-MKII.aps"></File></Folder><Folder name="Benito"><File path="Projects\Benito\Benito.c"></File><File path="Projects\Benito\Benito.h"></File><File path="Projects\Benito\Descriptors.c"></File><File path="Projects\Benito\Descriptors.h"></File><File path="Projects\Benito\Doxygen.conf"></File><File path="Projects\Benito\makefile"></File><File path="Projects\Benito\Benito.txt"></File><File path="Projects\Benito\Benito Programmer.inf"></File><File path="Projects\Benito\Benito.aps"></File></Folder><Folder name="LEDNotifier"><Folder name="CPUUsageApp"><File path="Projects\LEDNotifier\CPUUsageApp\CPUMonitor.cs"></File><File path="Projects\LEDNotifier\CPUUsageApp\CPUMonitor.csproj"></File><File path="Projects\LEDNotifier\CPUUsageApp\CPUMonitor.Designer.cs"></File><File path="Projects\LEDNotifier\CPUUsageApp\CPUMonitor.resx"></File><File path="Projects\LEDNotifier\CPUUsageApp\Program.cs"></File></Folder><Folder name="HotmailNotifierApp"><File path="Projects\LEDNotifier\HotmailNotifierApp\MailNotifier.cs"></File><File path="Projects\LEDNotifier\HotmailNotifierApp\MailNotifier.csproj"></File><File path="Projects\LEDNotifier\HotmailNotifierApp\MailNotifier.Designer.cs"></File><File path="Projects\LEDNotifier\HotmailNotifierApp\MailNotifier.resx"></File><File path="Projects\LEDNotifier\HotmailNotifierApp\Program.cs"></File></Folder><Folder name="LEDMixerApp"><File path="Projects\LEDNotifier\LEDMixerApp\LEDMixer.cs"></File><File path="Projects\LEDNotifier\LEDMixerApp\LEDMixer.csproj"></File><File path="Projects\LEDNotifier\LEDMixerApp\LEDMixer.Designer.cs"></File><File path="Projects\LEDNotifier\LEDMixerApp\LEDMixer.resx"></File><File path="Projects\LEDNotifier\LEDMixerApp\Program.cs"></File></Folder><File path="Projects\LEDNotifier\Descriptors.c"></File><File path="Projects\LEDNotifier\Descriptors.h"></File><File path="Projects\LEDNotifier\Doxygen.conf"></File><File path="Projects\LEDNotifier\LEDNotifier.c"></File><File path="Projects\LEDNotifier\LEDNotifier.h"></File><File path="Projects\LEDNotifier\LEDNotifier.txt"></File><File path="Projects\LEDNotifier\LUFA LED Notifier.inf"></File><File path="Projects\LEDNotifier\makefile"></File><File path="Projects\LEDNotifier\LEDNotifier.aps"></File></Folder><Folder name="MagStripe"><Folder name="Lib"><File path="Projects\Magstripe\Lib\CircularBitBuffer.c"></File><File path="Projects\Magstripe\Lib\CircularBitBuffer.h"></File><File path="Projects\Magstripe\Lib\MagstripeHW.h"></File></Folder><File path="Projects\Magstripe\Descriptors.c"></File><File path="Projects\Magstripe\Descriptors.h"></File><File path="Projects\Magstripe\Magstripe.c"></File><File path="Projects\Magstripe\Magstripe.h"></File><File path="Projects\Magstripe\makefile"></File><File path="Projects\Magstripe\Magstripe.txt"></File><File path="Projects\Magstripe\Doxygen.conf"></File><File path="Projects\Magstripe\Magstripe.aps"></File></Folder><Folder name="MIDIToneGenerator"><File path="Projects\MIDIToneGenerator\Descriptors.c"></File><File path="Projects\MIDIToneGenerator\Descriptors.h"></File><File path="Projects\MIDIToneGenerator\makefile"></File><File path="Projects\MIDIToneGenerator\MIDIToneGenerator.c"></File><File path="Projects\MIDIToneGenerator\MIDIToneGenerator.h"></File><File path="Projects\MIDIToneGenerator\MIDIToneGenerator.txt"></File><File path="Projects\MIDIToneGenerator\MIDIToneGenerator.aps"></File></Folder><Folder name="MissileLauncher"><File path="Projects\MissileLauncher\ConfigDescriptor.c"></File><File path="Projects\MissileLauncher\ConfigDescriptor.h"></File><File path="Projects\MissileLauncher\Doxygen.conf"></File><File path="Projects\MissileLauncher\makefile"></File><File path="Projects\MissileLauncher\MissileLauncher.c"></File><File path="Projects\MissileLauncher\MissileLauncher.h"></File><File path="Projects\MissileLauncher\MissileLauncher.txt"></File><File path="Projects\MissileLauncher\MissileLauncher.aps"></File></Folder><Folder name="RelayBoard"><File path="Projects\RelayBoard\Descriptors.c"></File><File path="Projects\RelayBoard\Descriptors.h"></File><File path="Projects\RelayBoard\Doxygen.conf"></File><File path="Projects\RelayBoard\makefile"></File><File path="Projects\RelayBoard\RelayBoard.c"></File><File path="Projects\RelayBoard\RelayBoard.h"></File><File path="Projects\RelayBoard\RelayBoard.txt"></File><File path="Projects\RelayBoard\RelayBoard.aps"></File></Folder><Folder name="TempDataLogger"><Folder name="Lib"><Folder name="FATFs"><File path="Projects\TempDataLogger\Lib\FATFs\diskio.c"></File><File path="Projects\TempDataLogger\Lib\FATFs\diskio.h"></File><File path="Projects\TempDataLogger\Lib\FATFs\ff.c"></File><File path="Projects\TempDataLogger\Lib\FATFs\ff.h"></File><File path="Projects\TempDataLogger\Lib\FATFs\ffconf.h"></File><File path="Projects\TempDataLogger\Lib\FATFs\integer.h"></File></Folder><File path="Projects\TempDataLogger\Lib\DataflashManager.c"></File><File path="Projects\TempDataLogger\Lib\DataflashManager.h"></File><File path="Projects\TempDataLogger\Lib\DS1307.c"></File><File path="Projects\TempDataLogger\Lib\DS1307.h"></File><File path="Projects\TempDataLogger\Lib\SCSI.c"></File><File path="Projects\TempDataLogger\Lib\SCSI.h"></File></Folder><Folder name="TempLogHostApp"><File path="Projects\TempDataLogger\TempLogHostApp\DataLoggerSettings.cs"></File><File path="Projects\TempDataLogger\TempLogHostApp\DataLoggerSettings.Designer.cs"></File><File path="Projects\TempDataLogger\TempLogHostApp\DataLoggerSettings.resx"></File><File path="Projects\TempDataLogger\TempLogHostApp\Program.cs"></File><File path="Projects\TempDataLogger\TempLogHostApp\TempLoggerHostApp.csproj"></File></Folder><File path="Projects\TempDataLogger\Descriptors.c"></File><File path="Projects\TempDataLogger\Descriptors.h"></File><File path="Projects\TempDataLogger\Doxygen.conf"></File><File path="Projects\TempDataLogger\makefile"></File><File path="Projects\TempDataLogger\TempDataLogger.c"></File><File path="Projects\TempDataLogger\TempDataLogger.h"></File><File path="Projects\TempDataLogger\TemperatureDataLogger.txt"></File><File path="Projects\TempDataLogger\TempDataLogger.aps"></File></Folder><Folder name="USBtoSerial"><File path="Projects\USBtoSerial\Descriptors.h"></File><File path="Projects\USBtoSerial\Doxygen.conf"></File><File path="Projects\USBtoSerial\LUFA USBtoSerial.inf"></File><File path="Projects\USBtoSerial\makefile"></File><File path="Projects\USBtoSerial\USBtoSerial.c"></File><File path="Projects\USBtoSerial\USBtoSerial.h"></File><File path="Projects\USBtoSerial\USBtoSerial.txt"></File><File path="Projects\USBtoSerial\USBtoSerial.aps"></File><File path="Projects\USBtoSerial\Descriptors.c"></File></Folder><Folder name="Webserver"><Folder name="Lib"><Folder name="uip"><File path="Projects\Webserver\Lib\uip\clock.c"></File><File path="Projects\Webserver\Lib\uip\clock.h"></File><File path="Projects\Webserver\Lib\uip\timer.c"></File><File path="Projects\Webserver\Lib\uip\timer.h"></File><File path="Projects\Webserver\Lib\uip\uip.c"></File><File path="Projects\Webserver\Lib\uip\uip.h"></File><File path="Projects\Webserver\Lib\uip\uip_arp.c"></File><File path="Projects\Webserver\Lib\uip\uip_arp.h"></File><File path="Projects\Webserver\Lib\uip\uipopt.h"></File><File path="Projects\Webserver\Lib\uip\uip-split.c"></File><File path="Projects\Webserver\Lib\uip\uip-split.h"></File></Folder><Folder name="FATFs"><File path="Projects\Webserver\Lib\FATFs\diskio.c"></File><File path="Projects\Webserver\Lib\FATFs\diskio.h"></File><File path="Projects\Webserver\Lib\FATFs\ff.c"></File><File path="Projects\Webserver\Lib\FATFs\ff.h"></File><File path="Projects\Webserver\Lib\FATFs\ffconf.h"></File><File path="Projects\Webserver\Lib\FATFs\integer.h"></File></Folder><File path="Projects\Webserver\Lib\DataflashManager.c"></File><File path="Projects\Webserver\Lib\DataflashManager.h"></File><File path="Projects\Webserver\Lib\uIPManagement.c"></File><File path="Projects\Webserver\Lib\uIPManagement.h"></File><File path="Projects\Webserver\Lib\HTTPServerApp.c"></File><File path="Projects\Webserver\Lib\HTTPServerApp.h"></File><File path="Projects\Webserver\Lib\SCSI.c"></File><File path="Projects\Webserver\Lib\SCSI.h"></File><File path="Projects\Webserver\Lib\DHCPClientApp.c"></File><File path="Projects\Webserver\Lib\DHCPClientApp.h"></File><File path="Projects\Webserver\Lib\TELNETServerApp.c"></File><File path="Projects\Webserver\Lib\TELNETServerApp.h"></File></Folder><File path="Projects\Webserver\makefile"></File><File path="Projects\Webserver\Webserver.c"></File><File path="Projects\Webserver\Webserver.h"></File><File path="Projects\Webserver\Doxygen.conf"></File><File path="Projects\Webserver\Webserver.txt"></File><File path="Projects\Webserver\Descriptors.c"></File><File path="Projects\Webserver\Descriptors.h"></File><File path="Projects\Webserver\USBHostMode.c"></File><File path="Projects\Webserver\USBHostMode.h"></File><File path="Projects\Webserver\USBDeviceMode.c"></File><File path="Projects\Webserver\USBDeviceMode.h"></File><File path="Projects\Webserver\Webserver.aps"></File></Folder><Folder name="XPLAINBridge"><Folder name="Lib"><File path="Projects\XPLAINBridge\Lib\SoftUART.c"></File><File path="Projects\XPLAINBridge\Lib\SoftUART.h"></File></Folder><File path="Projects\XPLAINBridge\XPLAINBridge.txt"></File><File path="Projects\XPLAINBridge\XPLAINBridge.h"></File><File path="Projects\XPLAINBridge\XPLAINBridge.c"></File><File path="Projects\XPLAINBridge\XPLAINBridge.aps"></File><File path="Projects\XPLAINBridge\USARTDescriptors.h"></File><File path="Projects\XPLAINBridge\USARTDescriptors.c"></File><File path="Projects\XPLAINBridge\makefile"></File><File path="Projects\XPLAINBridge\LUFA XPLAIN Bridge.inf"></File><File path="Projects\XPLAINBridge\Doxygen.conf"></File><File path="Projects\XPLAINBridge\AVRISPDescriptors.h"></File><File path="Projects\XPLAINBridge\AVRISPDescriptors.c"></File></Folder><Folder name="Incomplete"><Folder name="StandaloneProgrammer"><Folder name="Lib"><Folder name="PetiteFATFs"><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\diskio.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\diskio.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\integer.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\pff.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\PetiteFATFs\pff.h"></File></Folder><File path="Projects\Incomplete\StandaloneProgrammer\Lib\DataflashManager.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\DataflashManager.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\SCSI.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\SCSI.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\ProgrammerConfig.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Lib\ProgrammerConfig.h"></File></Folder><File path="Projects\Incomplete\StandaloneProgrammer\Descriptors.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\Descriptors.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\makefile"></File><File path="Projects\Incomplete\StandaloneProgrammer\StandaloneProgrammer.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\StandaloneProgrammer.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskDevice.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskDevice.h"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskHost.c"></File><File path="Projects\Incomplete\StandaloneProgrammer\DiskHost.h"></File></Folder></Folder><File path="Projects\makefile"></File></Folder><File path="makefile"></File><File path="README.txt"></File></Project>
\ No newline at end of file
index 33b47e0..adf5e54 100644 (file)
 MCU = ### INSERT NAME OF MICROCONTROLLER MODEL HERE ###\r
 \r
 \r
+# Target architecture (see library "Board Types" documentation).\r
+ARCH = ## INSERT NAME OF ARCHITECTURE HERE ##\r
+\r
+\r
 # Target board (see library "Board Types" documentation, NONE for projects not requiring\r
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called \r
 # "Board" inside the application directory.\r
diff --git a/LUFA/Common/Architectures.h b/LUFA/Common/Architectures.h
new file mode 100644 (file)
index 0000000..8bf9c7c
--- /dev/null
@@ -0,0 +1,74 @@
+/*\r
+             LUFA Library\r
+     Copyright (C) Dean Camera, 2011.\r
+\r
+  dean [at] fourwalledcubicle [dot] com\r
+           www.lufa-lib.org\r
+*/\r
+\r
+/*\r
+  Copyright 2011  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
+\r
+  Permission to use, copy, modify, distribute, and sell this\r
+  software and its documentation for any purpose is hereby granted\r
+  without fee, provided that the above copyright notice appear in\r
+  all copies and that both that the copyright notice and this\r
+  permission notice and warranty disclaimer appear in supporting\r
+  documentation, and that the name of the author not be used in\r
+  advertising or publicity pertaining to distribution of the\r
+  software without specific, written prior permission.\r
+\r
+  The author disclaim all warranties with regard to this\r
+  software, including all implied warranties of merchantability\r
+  and fitness.  In no event shall the author be liable for any\r
+  special, indirect or consequential damages or any damages\r
+  whatsoever resulting from loss of use, data or profits, whether\r
+  in an action of contract, negligence or other tortious action,\r
+  arising out of or in connection with the use or performance of\r
+  this software.\r
+*/\r
+\r
+/** \file\r
+ *  \brief Supported architecture defines.\r
+ *\r
+ *  This file contains constants which can be passed to the compiler (via setting the macro ARCH) in the\r
+ *  user project makefile using the -D option to configure the library drivers.\r
+ *\r
+ *  \note Do not include this file directly, rather include the Common.h header file instead to gain this file's\r
+ *        functionality.\r
+ */\r
+\r
+/** \ingroup Group_Common\r
+ *  \defgroup Group_Architectures Hardware Architectures\r
+ *\r
+ *  Macros for indicating the chosen hardware architecture to the library. These macros should be used when\r
+ *  defining the ARCH token to the chosen hardware via the -D switch in the project makefile.\r
+ *\r
+ *  @{\r
+ */\r
+\r
+#ifndef __LUFA_ARCHITECTURES_H__\r
+#define __LUFA_ARCHITECTURES_H__\r
+\r
+       /* Preprocessor Checks: */\r
+               #if !defined(__INCLUDE_FROM_COMMON_H)\r
+                       #error Do not include this file directly. Include LUFA/Common/Common.h instead to gain this functionality.\r
+               #endif\r
+\r
+       /* Public Interface - May be used in end-application: */\r
+               /* Macros: */\r
+                       /** Selects the Atmel 8-bit AVR (AT90USB* and ATMEGA*U* chips) architecture. */\r
+                       #define ARCH_AVR8           1\r
+\r
+                       #if !defined(__DOXYGEN__)\r
+                               #define ARCH_           ARCH_AVR8\r
+\r
+                               #if !defined(ARCH)\r
+                                       #define ARCH        ARCH_AVR8\r
+                               #endif\r
+                       #endif\r
+\r
+#endif\r
+\r
+/** @} */\r
+\r
index 67a3166..ff4058c 100644 (file)
@@ -44,7 +44,7 @@
  */
 
 /** \ingroup Group_Common
- *  @defgroup Group_GCCAttr Function/Variable Attributes
+ *  \defgroup Group_GCCAttr Function/Variable Attributes
  *
  *  Macros for easy access GCC function and variable attributes, which can be applied to function prototypes or
  *  variable attributes.
  *  @{
  */
 
-#ifndef __FUNCATTR_H__
-#define __FUNCATTR_H__
+#ifndef __LUFA_FUNCATTR_H__
+#define __LUFA_FUNCATTR_H__
 
        /* Preprocessor Checks: */
-               #if !defined(__COMMON_H__)
+               #if !defined(__INCLUDE_FROM_COMMON_H)
                        #error Do not include this file directly. Include LUFA/Common/Common.h instead to gain this functionality.
                #endif
 
index 264908f..7d91622 100644 (file)
@@ -39,7 +39,7 @@
  */
 
 /** \ingroup Group_Common
- *  @defgroup Group_BoardTypes Board Types
+ *  \defgroup Group_BoardTypes Board Types
  *
  *  Macros for indicating the chosen physical board hardware to the library. These macros should be used when
  *  defining the BOARD token to the chosen hardware via the -D switch in the project makefile.
  *  @{
  */
 
-#ifndef __BOARDTYPES_H__
-#define __BOARDTYPES_H__
+#ifndef __LUFA_BOARDTYPES_H__
+#define __LUFA_BOARDTYPES_H__
 
        /* Preprocessor Checks: */
-               #if !defined(__COMMON_H__)
+               #if !defined(__INCLUDE_FROM_COMMON_H)
                        #error Do not include this file directly. Include LUFA/Common/Common.h instead to gain this functionality.
                #endif
 
index c1aa27a..3afb60d 100644 (file)
@@ -35,7 +35,7 @@
  *  also includes other common code headers.
  */
 
-/** @defgroup Group_Common Common Utility Headers - LUFA/Drivers/Common/Common.h
+/** \defgroup Group_Common Common Utility Headers - LUFA/Drivers/Common/Common.h
  *
  *  Common utility headers containing macros, functions, enums and types which are common to all
  *  aspects of the library.
  *  @{
  */
 
-/** @defgroup Group_Debugging Debugging Macros
+/** \defgroup Group_Debugging Debugging Macros
  *
  *  Macros for debugging use.
  */
 
-/** @defgroup Group_BitManip Endian and Bit Macros
+/** \defgroup Group_BitManip Endian and Bit Macros
  *
  *  Functions for swapping endianness and reversing bit orders.
  */
 
-#ifndef __COMMON_H__
-#define __COMMON_H__
+#ifndef __LUFA_COMMON_H__
+#define __LUFA_COMMON_H__
 
+       /* Macros: */
+               #if !defined(__DOXYGEN__)
+                       #define __INCLUDE_FROM_COMMON_H
+               #endif
+               
        /* Includes: */
                #include <stdint.h>
                #include <stdbool.h>
 
+               #include "Architectures.h"
                #include "Attributes.h"
                #include "BoardTypes.h"
+               
+       /* Architecture specific utility includes: */
+               #if (ARCH == ARCH_AVR8)
+                       #include <avr/io.h>
+                       #include <avr/interrupt.h>
+                       #include <avr/pgmspace.h>
+                       #include <avr/eeprom.h>
+                       #include <util/atomic.h>
+                       #include <util/delay.h>
+               #endif
 
        /* Public Interface - May be used in end-application: */
                /* Macros: */
                         *
                         *  \return The larger of the two input parameters
                         */
-                       #define MAX(x, y)               ((x > y) ? x : y)
+                       #if !defined(MAX) || defined(__DOXYGEN__)
+                               #define MAX(x, y)               ((x > y) ? x : y)
+                       #endif
 
                        /** Convenience macro to determine the smaller of two values.
                         *
                         *
                         *  \return The smaller of the two input parameters
                         */
-                       #define MIN(x, y)               ((x < y) ? x : y)
-
-                       /** Defines a volatile \c NOP statement which cannot be optimized out by the compiler, and thus can always
-                        *  be set as a breakpoint in the resulting code. Useful for debugging purposes, where the optimiser
-                        *  removes/reorders code to the point where break points cannot reliably be set.
-                        *
-                        *  \ingroup Group_Debugging
-                        */
-                       #define JTAG_DEBUG_POINT()      __asm__ __volatile__ ("NOP" ::)
+                       #if !defined(MIN) || defined(__DOXYGEN__)
+                               #define MIN(x, y)               ((x < y) ? x : y)
+                       #endif
 
-                       /** Defines an explicit JTAG break point in the resulting binary via the assembly \c BREAK statement. When
-                        *  a JTAG is used, this causes the program execution to halt when reached until manually resumed.
-                        *
-                        *  \ingroup Group_Debugging
-                        */
-                       #define JTAG_DEBUG_BREAK()      __asm__ __volatile__ ("BREAK" ::)
+                       #if (ARCH == ARCH_AVR8)
+                               /** Defines a volatile \c NOP statement which cannot be optimized out by the compiler, and thus can always
+                                *  be set as a breakpoint in the resulting code. Useful for debugging purposes, where the optimiser
+                                *  removes/reorders code to the point where break points cannot reliably be set.
+                                *
+                                *  \ingroup Group_Debugging
+                                */
+                               #define JTAG_DEBUG_POINT()      __asm__ __volatile__ ("NOP" ::)
 
-                       /** Macro for testing condition "x" and breaking via \ref JTAG_DEBUG_BREAK() if the condition is false.
-                        *
-                        *  \param[in] Condition  Condition that will be evaluated,
-                        *
-                        *  \ingroup Group_Debugging
-                       */
-                       #define JTAG_DEBUG_ASSERT(Condition)    MACROS{ if (!(Condition)) { JTAG_DEBUG_BREAK(); } }MACROE
+                               /** Defines an explicit JTAG break point in the resulting binary via the assembly \c BREAK statement. When
+                                *  a JTAG is used, this causes the program execution to halt when reached until manually resumed.
+                                *
+                                *  \ingroup Group_Debugging
+                                */
+                               #define JTAG_DEBUG_BREAK()      __asm__ __volatile__ ("BREAK" ::)
+
+                               #if !defined(pgm_read_ptr) || defined(__DOXYGEN__)
+                                       /** Reads a pointer out of PROGMEM space. This is currently a wrapper for the avr-libc \c pgm_read_ptr()
+                                        *  macro with a \c void* cast, so that its value can be assigned directly to a pointer variable or used
+                                        *  in pointer arithmetic without further casting in C. In a future avr-libc distribution this will be
+                                        *  part of the standard API and will be implemented in a more formal manner.
+                                        *
+                                        *  \param[in] Addr  Address of the pointer to read.
+                                        *
+                                        *  \return Pointer retrieved from PROGMEM space.
+                                        */
+                                       #define pgm_read_ptr(Addr)    (void*)pgm_read_word(Addr)
+                               #endif
+
+                               /** Macro for testing condition "x" and breaking via \ref JTAG_DEBUG_BREAK() if the condition is false.
+                                *
+                                *  \param[in] Condition  Condition that will be evaluated,
+                                *
+                                *  \ingroup Group_Debugging
+                               */
+                               #define JTAG_DEBUG_ASSERT(Condition)    MACROS{ if (!(Condition)) { JTAG_DEBUG_BREAK(); } }MACROE
 
-                       /** Macro for testing condition "x" and writing debug data to the stdout stream if \c false. The stdout stream
-                        *  must be pre-initialized before this macro is run and linked to an output device, such as the AVR's USART
-                        *  peripheral.
-                        *
-                        *  The output takes the form "{FILENAME}: Function {FUNCTION NAME}, Line {LINE NUMBER}: Assertion {Condition} failed."
-                        *
-                        *  \param[in] Condition  Condition that will be evaluated,
-                        *
-                        *  \ingroup Group_Debugging
-                        */
-                       #define STDOUT_ASSERT(Condition)        MACROS{ if (!(x)) { printf_P(PSTR("%s: Function \"%s\", Line %d: "   \
-                                                                       "Assertion \"%s\" failed.\r\n"),     \
-                                                                       __FILE__, __func__, __LINE__, #Condition); } }MACROE
+                               /** Macro for testing condition "x" and writing debug data to the stdout stream if \c false. The stdout stream
+                                *  must be pre-initialized before this macro is run and linked to an output device, such as the AVR's USART
+                                *  peripheral.
+                                *
+                                *  The output takes the form "{FILENAME}: Function {FUNCTION NAME}, Line {LINE NUMBER}: Assertion {Condition} failed."
+                                *
+                                *  \param[in] Condition  Condition that will be evaluated,
+                                *
+                                *  \ingroup Group_Debugging
+                                */
+                               #define STDOUT_ASSERT(Condition)        MACROS{ if (!(x)) { printf_P(PSTR("%s: Function \"%s\", Line %d: "   \
+                                                                               "Assertion \"%s\" failed.\r\n"),     \
+                                                                               __FILE__, __func__, __LINE__, #Condition); } }MACROE
+                       #endif
                        
                        /** Forces GCC to use pointer indirection (via the AVR's pointer register pairs) when accessing the given
                         *  struct pointer. In some cases GCC will emit non-optimal assembly code when accessing a structure through
                         */
                        #define GCC_FORCE_POINTER_ACCESS(StructPtr) __asm__ __volatile__("" : "=b" (StructPtr) : "0" (StructPtr))
 
-                       #if !defined(pgm_read_ptr) || defined(__DOXYGEN__)
-                               /** Reads a pointer out of PROGMEM space. This is currently a wrapper for the avr-libc \c pgm_read_ptr()
-                                *  macro with a \c void* cast, so that its value can be assigned directly to a pointer variable or used
-                                *  in pointer arithmetic without further casting in C. In a future avr-libc distribution this will be
-                                *  part of the standard API and will be implemented in a more formal manner.
-                                *
-                                *  \param[in] Addr  Address of the pointer to read.
-                                *
-                                *  \return Pointer retrieved from PROGMEM space.
-                                */
-                               #define pgm_read_ptr(Addr)    (void*)pgm_read_word(Addr)
-                       #endif
-
                        /** Swaps the byte ordering of a 16-bit value at compile time. Do not use this macro for swapping byte orderings
                         *  of dynamic values computed at runtime, use \ref SwapEndian_16() instead. The result of this macro can be used
                         *  inside struct or other variable initializers outside of a function, something that is not possible with the
index 4d38817..3f6a6cc 100644 (file)
@@ -38,7 +38,7 @@
  */\r
 \r
 /** \ingroup Group_LEDs\r
- *  @defgroup Group_LEDs_ADAFRUITU4 ADAFRUITU4\r
+ *  \defgroup Group_LEDs_ADAFRUITU4 ADAFRUITU4\r
  *\r
  *  Board specific LED driver header for the Adafruit U4 Breakout board (http://ladyada.net/products/atmega32u4breakout).\r
  *\r
index 28ea057..568c0cb 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_Buttons
- *  @defgroup Group_Buttons_ATAVRUSBRF01 ATAVRUSBRF01
+ *  \defgroup Group_Buttons_ATAVRUSBRF01 ATAVRUSBRF01
  *
  *  Board specific Buttons driver header for the Atmel ATAVRUSBRF01.
  *
index d6dde92..044042f 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_LEDs
- *  @defgroup Group_LEDs_ATAVRUSBRF01 ATAVRUSBRF01
+ *  \defgroup Group_LEDs_ATAVRUSBRF01 ATAVRUSBRF01
  *
  *  Board specific LED driver header for the Atmel ATAVRUSBRF01.
  *
index cf2a477..4e3d088 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_Buttons
- *  @defgroup Group_Buttons_BENITO BENITO
+ *  \defgroup Group_Buttons_BENITO BENITO
  *
  *  Board specific Buttons driver header for the Tempusdictum Benito (http://dorkbotpdx.org/wiki/benito).
  *
index 855ca01..51593ec 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_LEDs
- *  @defgroup Group_LEDs_BENITO BENITO
+ *  \defgroup Group_LEDs_BENITO BENITO
  *
  *  Board specific LED driver header for the Tempusdictum Benito (http://dorkbotpdx.org/wiki/benito).
  *
index 40c8473..e5c250c 100644 (file)
@@ -38,7 +38,7 @@
  */\r
 \r
 /** \ingroup Group_LEDs\r
- *  @defgroup Group_LEDs_BLACKCAT BLACKCAT\r
+ *  \defgroup Group_LEDs_BLACKCAT BLACKCAT\r
  *\r
  *  Board specific LED driver header for the TCNISO Blackcat USB JTAG (http://www.embeddedcomputers.net/products/BlackcatUSB/.\r
  *\r
index 6c2a361..fa1a8b0 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_LEDs
- *  @defgroup Group_LEDs_BUI BUI
+ *  \defgroup Group_LEDs_BUI BUI
  *
  *  Board specific LED driver header for the Busware BUI (http://www.busware.de/tiki-index.php?page=BUI).
  *
index 8b54f11..015ecf6 100644 (file)
@@ -41,7 +41,7 @@
  */
 
 /** \ingroup Group_Buttons
- *  @defgroup Group_Buttons_BUMBLEB BUMBLEB
+ *  \defgroup Group_Buttons_BUMBLEB BUMBLEB
  *
  *  Board specific buttons driver header for the Fletchtronics BUMBLEB (http://fletchtronics.net/bumble-b). The BUMBLEB
  *  third-party board does not include any on-board peripherals, but does have an officially recommended external peripheral
index 4516bdb..336863c 100644 (file)
@@ -41,7 +41,7 @@
  */
 
 /** \ingroup Group_Joystick
- *  @defgroup Group_Joystick_BUMBLEB BUMBLEB
+ *  \defgroup Group_Joystick_BUMBLEB BUMBLEB
  *
  *  Board specific joystick driver header for the Fletchtronics BUMBLEB (http://fletchtronics.net/bumble-b). The BUMBLEB
  *  third-party board does not include any on-board peripherals, but does have an officially recommended external peripheral
index b985340..349ef38 100644 (file)
@@ -41,7 +41,7 @@
  */
 
 /** \ingroup Group_LEDs
- *  @defgroup Group_LEDs_BUMBLEB BUMBLEB
+ *  \defgroup Group_LEDs_BUMBLEB BUMBLEB
  *
  *  Board specific LED driver header for the Fletchtronics BUMBLEB (http://fletchtronics.net/bumble-b). The BUMBLEB
  *  third-party board does not include any on-board peripherals, but does have an officially recommended external
index 1e31059..686fe5a 100644 (file)
@@ -44,7 +44,7 @@
  */
 
 /** \ingroup Group_BoardDrivers
- *  @defgroup Group_Buttons Buttons Driver - LUFA/Drivers/Board/Buttons.h
+ *  \defgroup Group_Buttons Buttons Driver - LUFA/Drivers/Board/Buttons.h
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
                #include "MINIMUS/Buttons.h"
        #elif (BOARD == BOARD_MICROSIN162)
                #include "MICROSIN162/Buttons.h"
-       #elif (BOARD == BOARD_USER)
-               #include "Board/Buttons.h"
        #else
-               #error The selected board does not contain any GPIO buttons.
+               #include "Board/Buttons.h"
        #endif
 
        /* Pseudo-Functions for Doxygen: */
index 5ed6817..fd98c77 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_LEDs
- *  @defgroup Group_LEDs_CULV3 CULV3
+ *  \defgroup Group_LEDs_CULV3 CULV3
  *
  *  Board specific LED driver header for the Busware CUL V3 (http://busware.de/tiki-index.php?page=CUL).
  *
index 3a2469d..c9d20b6 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_LEDs
- *  @defgroup Group_LEDs_CULV3 CULV3
+ *  \defgroup Group_LEDs_CULV3 CULV3
  *
  *  Board specific LED driver header for the Busware CUL V3 (http://busware.de/tiki-index.php?page=CUL).
  *
index 852d819..06c1e62 100644 (file)
@@ -44,7 +44,7 @@
  */
 
 /** \ingroup Group_BoardDrivers
- *  @defgroup Group_Dataflash Dataflash Driver - LUFA/Drivers/Board/Dataflash.h
+ *  \defgroup Group_Dataflash Dataflash Driver - LUFA/Drivers/Board/Dataflash.h
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
        #endif
 
        /* Includes: */
-       #include "../Peripheral/SPI.h"
        #include "../../Common/Common.h"
+       #include "../Peripheral/SPI.h"
 
        /* Enable C linkage for C++ Compilers: */
                #if defined(__cplusplus)
                                #include "XPLAIN/Dataflash.h"
                        #elif (BOARD == BOARD_EVK527)
                                #include "EVK527/Dataflash.h"
-                       #elif (BOARD == BOARD_USER)
-                               #include "Board/Dataflash.h"
                        #else
-                               #error The selected board does not contain a dataflash IC.
+                               #include "Board/Dataflash.h"
                        #endif
 
        /* Disable C linkage for C++ Compilers: */
index c0d3589..8d36ae3 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_Dataflash_EVK527
- *  @defgroup Group_Dataflash_EVK527_AT45DB321C AT45DB321C
+ *  \defgroup Group_Dataflash_EVK527_AT45DB321C AT45DB321C
  *
  *  Board specific Dataflash commands header for the AT45DB321C as mounted on the Atmel EVK527.
  *
index eff2f51..f9b3da1 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_Buttons
- *  @defgroup Group_Buttons_EVK527 EVK527
+ *  \defgroup Group_Buttons_EVK527 EVK527
  *
  *  Board specific Buttons driver header for the Atmel EVK527.
  *
index fdf49c1..e9629e0 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_Dataflash
- *  @defgroup Group_Dataflash_EVK527 EVK527
+ *  \defgroup Group_Dataflash_EVK527 EVK527
  *
  *  Board specific Dataflash driver header for the Atmel EVK527.
  *
index ec08b7a..c0255f4 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_Joystick
- *  @defgroup Group_Joystick_EVK527 EVK527
+ *  \defgroup Group_Joystick_EVK527 EVK527
  *
  *  Board specific joystick driver header for the Atmel EVK527.
  *
index f5c78fd..5f4670f 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_LEDs
- *  @defgroup Group_LEDs_EVK527 EVK527
+ *  \defgroup Group_LEDs_EVK527 EVK527
  *
  *  Board specific LED driver header for the Atmel EVK527.
  *
index 958664c..b5272ae 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_Buttons
- *  @defgroup Group_Buttons_JMDBU2 JMDBU2
+ *  \defgroup Group_Buttons_JMDBU2 JMDBU2
  *
  *  Board specific Buttons driver header for the Mattairtech JM-DB-U2 (http://u2.mattair.net/index.html).
  *
index 4c62a45..a15e9f3 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_LEDs
- *  @defgroup Group_LEDs_JMDBU2 JMDBU2
+ *  \defgroup Group_LEDs_JMDBU2 JMDBU2
  *
  *  Board specific LED driver header for the Mattairtech JM-DB-U2 (http://u2.mattair.net/index.html).
  *
index f2298e9..a9448ff 100644 (file)
@@ -44,7 +44,7 @@
  */
 
 /** \ingroup Group_BoardDrivers
- *  @defgroup Group_Joystick Joystick Driver - LUFA/Drivers/Board/Joystick.h
+ *  \defgroup Group_Joystick Joystick Driver - LUFA/Drivers/Board/Joystick.h
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
                #include "BUMBLEB/Joystick.h"
        #elif (BOARD == BOARD_EVK527)
                #include "EVK527/Joystick.h"
-       #elif (BOARD == BOARD_USER)
-               #include "Board/Joystick.h"
        #else
-               #error The selected board does not contain a joystick.
+               #include "Board/Joystick.h"
        #endif
 
        /* Pseudo-Functions for Doxygen: */
index 58cdffe..9ef2ea1 100644 (file)
@@ -44,7 +44,7 @@
  */
 
 /** \ingroup Group_BoardDrivers
- *  @defgroup Group_LEDs LEDs Driver - LUFA/Drivers/Board/LEDs.h
+ *  \defgroup Group_LEDs LEDs Driver - LUFA/Drivers/Board/LEDs.h
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
                #include "MICROSIN162/LEDs.h"
        #elif (BOARD == BOARD_SPARKFUN8U2)
                #include "SPARKFUN8U2/LEDs.h"
-       #elif (BOARD == BOARD_USER)
+       #else
                #include "Board/LEDs.h"
        #endif
 
index b6ec750..c3ead68 100644 (file)
@@ -38,7 +38,7 @@
  */\r
 \r
 /** \ingroup Group_LEDs\r
- *  @defgroup Group_LEDs_MAXIMUS MAXIMUS\r
+ *  \defgroup Group_LEDs_MAXIMUS MAXIMUS\r
  *\r
  *  Board specific LED driver header for the Maximus (http://www.avrusb.com/).\r
  *\r
index a8cff7e..a4d1637 100644 (file)
@@ -38,7 +38,7 @@
  */\r
 \r
 /** \ingroup Group_Buttons\r
- *  @defgroup Group_Buttons_MICROSIN162 MICROSIN162\r
+ *  \defgroup Group_Buttons_MICROSIN162 MICROSIN162\r
  *\r
  *  Board specific Buttons driver header for the Microsin AVR-USB162 board (http://microsin.ru/content/view/685/44/).\r
  *\r
index f988d7c..8926e33 100644 (file)
@@ -38,7 +38,7 @@
  */\r
 \r
 /** \ingroup Group_LEDs\r
- *  @defgroup Group_LEDs_MICROSIN162 MICROSIN162\r
+ *  \defgroup Group_LEDs_MICROSIN162 MICROSIN162\r
  *\r
  *  Board specific LED driver header for the Microsin AVR-USB162 board (http://microsin.ru/content/view/685/44/).\r
  *\r
index f421f73..9b3016f 100644 (file)
@@ -38,7 +38,7 @@
  */\r
  \r
 /** \ingroup Group_Buttons\r
- *  @defgroup Group_Buttons_MINIMUS MINIMUS\r
+ *  \defgroup Group_Buttons_MINIMUS MINIMUS\r
  *\r
  *  Board specific Buttons driver header for the MINIMUS.\r
  *\r
index 8333857..524e628 100644 (file)
@@ -38,7 +38,7 @@
  */\r
 \r
 /** \ingroup Group_LEDs\r
- *  @defgroup Group_LEDs_MINIMUS MINIMUS\r
+ *  \defgroup Group_LEDs_MINIMUS MINIMUS\r
  *\r
  *  Board specific LED driver header for the Minimus USB (http://www.minimususb.com/).\r
  *\r
index 322eaa3..e52dadf 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_Buttons
- *  @defgroup Group_Buttons_OLIMEX162 OLIMEX162
+ *  \defgroup Group_Buttons_OLIMEX162 OLIMEX162
  *
  *  Board specific Buttons driver header for the Olimex AVR-USB-162 Development Board (http://www.olimex.com/dev/avr-usb-162.html).
  *
index 5605096..d13418a 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_LEDs
- *  @defgroup Group_LEDs_OLIMEX162 OLIMEX162
+ *  \defgroup Group_LEDs_OLIMEX162 OLIMEX162
  *
  *  Board specific LED driver header for the Olimex AVR-USB-162 (http://www.olimex.com/dev/avr-usb-162.html).
  *
index 4012e5b..adaa9cd 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_LEDs
- *  @defgroup Group_LEDs_RZUSBSTICK RZUSBSTICK
+ *  \defgroup Group_LEDs_RZUSBSTICK RZUSBSTICK
  *
  *  Board specific LED driver header for the Atmel RZUSBSTICK.
  *
index e3682c7..2a3961e 100644 (file)
@@ -38,7 +38,7 @@
  */\r
 \r
 /** \ingroup Group_LEDs\r
- *  @defgroup Group_LEDs_SPARKFUN8U2 SPARKFUN8U2\r
+ *  \defgroup Group_LEDs_SPARKFUN8U2 SPARKFUN8U2\r
  *\r
  * Board specific LED driver header for the Sparkfun ATMEGA8U2 breakout board (http://www.sparkfun.com/products/10277).\r
  *\r
index ea5c8d2..074fc37 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_Dataflash_STK525
- *  @defgroup Group_Dataflash_STK525_AT45DB321C AT45DB321C
+ *  \defgroup Group_Dataflash_STK525_AT45DB321C AT45DB321C
  *
  *  Board specific Dataflash commands header for the AT45DB321C as mounted on the Atmel STK525.
  *
index dd9caee..f18c2a1 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_Buttons
- *  @defgroup Group_Buttons_STK525 STK525
+ *  \defgroup Group_Buttons_STK525 STK525
  *
  *  Board specific Buttons driver header for the Atmel STK525.
  *
index 54cdcbd..ec3246c 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_Dataflash
- *  @defgroup Group_Dataflash_STK525 STK525
+ *  \defgroup Group_Dataflash_STK525 STK525
  *
  *  Board specific Dataflash driver header for the Atmel STK525.
  *
index d42fd04..2baedb0 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_Joystick
- *  @defgroup Group_Joystick_STK525 STK525
+ *  \defgroup Group_Joystick_STK525 STK525
  *
  *  Board specific joystick driver header for the Atmel STK525.
  *
index 3aa6210..cacd319 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_LEDs
- *  @defgroup Group_LEDs_STK525 STK525
+ *  \defgroup Group_LEDs_STK525 STK525
  *
  *  Board specific LED driver header for the Atmel STK525.
  *
index 589613c..10344d4 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_Dataflash_STK526
- *  @defgroup Group_Dataflash_STK526_AT45DB642D AT45DB642D
+ *  \defgroup Group_Dataflash_STK526_AT45DB642D AT45DB642D
  *
  *  Board specific Dataflash commands header for the AT45DB642D as mounted on the Atmel STK526.
  *
index 274869a..afbb3fa 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_Buttons
- *  @defgroup Group_Buttons_STK526 STK526
+ *  \defgroup Group_Buttons_STK526 STK526
  *
  *  Board specific Buttons driver header for the Atmel STK526.
  *
index f510735..b0ceecd 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_Dataflash
- *  @defgroup Group_Dataflash_STK526 STK526
+ *  \defgroup Group_Dataflash_STK526 STK526
  *
  *  Board specific Dataflash driver header for the Atmel STK525.
  *
index 7605a8f..6d54545 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_Joystick
- *  @defgroup Group_Joystick_STK526 STK526
+ *  \defgroup Group_Joystick_STK526 STK526
  *
  *  Board specific joystick driver header for the Atmel STK526.
  *
index e4b0fca..3ec9bd3 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_LEDs
- *  @defgroup Group_LEDs_STK526 STK526
+ *  \defgroup Group_LEDs_STK526 STK526
  *
  *  Board specific LED driver header for the Atmel STK526.
  *
index 93b56ef..551cdc2 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_LEDs
- *  @defgroup Group_LEDs_TEENSY TEENSY
+ *  \defgroup Group_LEDs_TEENSY TEENSY
  *
  *  Board specific LED driver header for the PJRC Teensy boards (http://www.pjrc.com/teensy/index.html).
  *
index a873275..f7a2b6d 100644 (file)
@@ -35,7 +35,7 @@
  */
 
 /** \ingroup Group_BoardDrivers
- *  @defgroup Group_Temperature Temperature Sensor Driver - LUFA/Drivers/Board/Temperature.h
+ *  \defgroup Group_Temperature Temperature Sensor Driver - LUFA/Drivers/Board/Temperature.h
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
@@ -67,8 +67,6 @@
 #define __TEMPERATURE_H__
 
        /* Includes: */
-               #include <avr/pgmspace.h>
-
                #include "../../Common/Common.h"
                #include "../Peripheral/ADC.h"
 
@@ -77,7 +75,7 @@
                #elif ((BOARD != BOARD_USBKEY) && (BOARD != BOARD_STK525) && \
                       (BOARD != BOARD_STK526) && (BOARD != BOARD_USER) &&   \
                           (BOARD != BOARD_EVK527))
-                       #error The selected board does not contain a temperature sensor.
+                       #error The selected board does not contain a compatible temperature sensor.
                #endif
 
        /* Enable C linkage for C++ Compilers: */
index 782235e..6a232bd 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_Buttons
- *  @defgroup Group_Buttons_UDIP UDIP
+ *  \defgroup Group_Buttons_UDIP UDIP
  *
  *  Board specific Buttons driver header for the Linnix UDIP (http://linnix.com/udip/).
  *
index 0001940..6f0e569 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_LEDs
- *  @defgroup Group_LEDs_UDIP UDIP
+ *  \defgroup Group_LEDs_UDIP UDIP
  *
  *  Board specific LED driver header for the Linnix UDIP (http://linnix.com/udip/).
  *
index f21abfc..0b5413d 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_LEDs
- *  @defgroup Group_LEDs_UNO UNO
+ *  \defgroup Group_LEDs_UNO UNO
  *
  *  Board specific LED driver header for the Arduino Uno (http://arduino.cc/en/Main/ArduinoBoardUno).
  *
index 87fdd7b..8f79a92 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_Buttons
- *  @defgroup Group_Buttons_USBFOO USBFOO
+ *  \defgroup Group_Buttons_USBFOO USBFOO
  *
  *  Board specific Buttons driver header for the Kernel Concepts USBFOO (http://shop.kernelconcepts.de/product_info.php?products_id=102).
  *
index 585bcef..07346e4 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_LEDs
- *  @defgroup Group_LEDs_USBFOO USBFOO
+ *  \defgroup Group_LEDs_USBFOO USBFOO
  *
  *  Board specific LED driver header for the Kernel Concepts USBFOO (http://shop.kernelconcepts.de/product_info.php?products_id=102).
  *
index e603654..f09a7b5 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_Dataflash_USBKEY
- *  @defgroup Group_Dataflash_USBKEY_AT45DB642D AT45DB642D
+ *  \defgroup Group_Dataflash_USBKEY_AT45DB642D AT45DB642D
  *
  *  Board specific Dataflash commands header for the AT45DB642D as mounted on the Atmel USBKEY.
  *
index d9dfd62..2018cb0 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_Buttons
- *  @defgroup Group_Buttons_USBKEY USBKEY
+ *  \defgroup Group_Buttons_USBKEY USBKEY
  *
  *  Board specific Buttons driver header for the Atmel USBKEY.
  *
index 69ac90d..892cfcf 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_Dataflash
- *  @defgroup Group_Dataflash_USBKEY USBKEY
+ *  \defgroup Group_Dataflash_USBKEY USBKEY
  *
  *  Board specific Dataflash driver header for the Atmel USBKEY board.
  *
index 8c47db9..90cbf7f 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_Joystick
- *  @defgroup Group_Joystick_USBKEY USBKEY
+ *  \defgroup Group_Joystick_USBKEY USBKEY
  *
  *  Board specific joystick driver header for the Atmel USBKEY.
  *
index 588511b..3172231 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_LEDs
- *  @defgroup Group_LEDs_USBKEY USBKEY
+ *  \defgroup Group_LEDs_USBKEY USBKEY
  *
  *  Board specific LED driver header for the Atmel USBKEY.
  *
index dc2e9a2..b5493ab 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_Buttons
- *  @defgroup Group_Buttons_USBTINYMKII USBTINYMKII
+ *  \defgroup Group_Buttons_USBTINYMKII USBTINYMKII
  *
  *  Board specific Buttons driver header for Tom's USBTINY MKII (http://tom-itx.dyndns.org:81/~webpage/).
  *
index c836bd0..65f1117 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_LEDs
- *  @defgroup Group_LEDs_USBTINYMKII USBTINYMKII
+ *  \defgroup Group_LEDs_USBTINYMKII USBTINYMKII
  *
  *  Board specific LED driver header for Tom's USBTINY MKII (http://tom-itx.dyndns.org:81/~webpage/).
  *
index 7aa1157..0fbb380 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_Dataflash_XPLAIN
- *  @defgroup Group_Dataflash_XPLAIN_AT45DB642D AT45DB642D
+ *  \defgroup Group_Dataflash_XPLAIN_AT45DB642D AT45DB642D
  *
  *  Board specific Dataflash commands header for the AT45DB642D as mounted on the Atmel XPLAIN.
  *
index 6ea43fd..0651452 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_Dataflash
- *  @defgroup Group_Dataflash_XPLAIN XPLAIN
+ *  \defgroup Group_Dataflash_XPLAIN XPLAIN
  *
  *  Board specific Dataflash driver header for the Atmel XPLAIN.
  *
index 4be19ef..953c77e 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_LEDs
- *  @defgroup Group_LEDs_XPLAIN XPLAIN
+ *  \defgroup Group_LEDs_XPLAIN XPLAIN
  *
  *  Board specific LED driver header for the Atmel XPLAIN.
  *
index dd34e99..8ca5d2a 100644 (file)
@@ -41,7 +41,7 @@
  */\r
  \r
 /** \ingroup Group_MiscDrivers\r
- *  @defgroup Group_RingBuff Generic Byte Ring Buffer - LUFA/Drivers/Misc/RingBuffer.h\r
+ *  \defgroup Group_RingBuff Generic Byte Ring Buffer - LUFA/Drivers/Misc/RingBuffer.h\r
  *\r
  *  \section Sec_Dependencies Module Source Dependencies\r
  *  The following files must be built with any user project that uses this module:\r
index 6b9d3fb..2ab0058 100644 (file)
@@ -36,7 +36,7 @@
  */
 
 /** \ingroup Group_MiscDrivers
- *  @defgroup Group_Terminal ANSI Terminal Escape Codes - LUFA/Drivers/Misc/TerminalCodes.h
+ *  \defgroup Group_Terminal ANSI Terminal Escape Codes - LUFA/Drivers/Misc/TerminalCodes.h
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
index ec58e52..29e32a8 100644 (file)
 /** \file
  *  \brief Master include file for the ADC peripheral driver.
  *
- *  This file is the master dispatch header file for the device-specific ADC driver, for AVRs containing an ADC.
+ *  This file is the master dispatch header file for the device-specific ADC driver, for microcontrollers
+ *  containing an ADC.
  *
  *  User code should include this file, which will in turn include the correct ADC driver header file for the
- *  currently selected AVR model.
+ *  currently selected architecture and microcontroller model.
  */
 
 /** \ingroup Group_PeripheralDrivers
- *  @defgroup Group_ADC ADC Driver - LUFA/Drivers/Peripheral/ADC.h
+ *  \defgroup Group_ADC ADC Driver - LUFA/Drivers/Peripheral/ADC.h
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
  *    - None
  *
  *  \section Sec_ModDescription Module Description
- *  Hardware ADC driver. This module provides an easy to use driver for the hardware
- *  ADC present on many AVR models, for the conversion of analogue signals into the
+ *  Hardware ADC driver. This module provides an easy to use driver for the hardware ADC
+ *  present on many microcontrollers, for the conversion of analogue signals into the
  *  digital domain.
  *
  *  \note The exact API for this driver may vary depending on the target used - see
 #define __ADC_H__
 
        /* Macros: */
-       #if !defined(__DOXYGEN__)
-               #define __INCLUDE_FROM_ADC_H
-       #endif
+               #if !defined(__DOXYGEN__)
+                       #define __INCLUDE_FROM_ADC_H
+               #endif
+
+       /* Includes: */
+               #include "../../Common/Common.h"
 
        /* Includes: */
-               #if (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB646__) || \
-                    defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__) || \
-                        defined(__AVR_ATmega16U4__)  || defined(__AVR_ATmega32U4__) || \
-                        defined(__AVR_ATmega32U6__))
-                       #include "AVRU4U6U7/ADC.h"
+               #if (ARCH == ARCH_AVR8)
+                       #include "AVR8/ADC.h"
                #else
-                       #error "ADC is not available for the currently selected AVR model."
+                       #error The ADC peripheral driver is not currently available for your selected architecture.
                #endif
 
 #endif
diff --git a/LUFA/Drivers/Peripheral/AVR8/ADC.h b/LUFA/Drivers/Peripheral/AVR8/ADC.h
new file mode 100644 (file)
index 0000000..99f70d1
--- /dev/null
@@ -0,0 +1,453 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2011.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2011  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
+  without fee, provided that the above copyright notice appear in
+  all copies and that both that the copyright notice and this
+  permission notice and warranty disclaimer appear in supporting
+  documentation, and that the name of the author not be used in
+  advertising or publicity pertaining to distribution of the
+  software without specific, written prior permission.
+
+  The author disclaim all warranties with regard to this
+  software, including all implied warranties of merchantability
+  and fitness.  In no event shall the author be liable for any
+  special, indirect or consequential damages or any damages
+  whatsoever resulting from loss of use, data or profits, whether
+  in an action of contract, negligence or other tortious action,
+  arising out of or in connection with the use or performance of
+  this software.
+*/
+
+/** \file
+ *  \brief ADC Peripheral Driver (AVR8)
+ *
+ *  On-chip Analogue-to-Digital converter (ADC) driver for supported U4, U6 and U7 model AVRs that contain an ADC
+ *  peripheral internally.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the ADC driver
+ *        dispatch header located in LUFA/Drivers/Peripheral/ADC.h.
+ */
+
+/** \ingroup Group_ADC
+ *  \defgroup Group_ADC_AVR8 ADC Peripheral Driver (AVR8)
+ *
+ *  \section Sec_ModDescription Module Description
+ *  On-chip Analogue-to-Digital converter (ADC) driver for supported U4, U6 and U7 model AVRs that contain an ADC
+ *  peripheral internally.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the ADC driver
+ *        dispatch header located in LUFA/Drivers/Peripheral/ADC.h.
+ *
+ *  \section Sec_ExampleUsage Example Usage
+ *  The following snippet is an example of how this module may be used within a typical
+ *  application.
+ *
+ *  \code
+ *      // Initialise the ADC driver before first use
+ *      ADC_Init(ADC_FREE_RUNNING | ADC_PRESCALE_32);
+ *
+ *      // Must setup the ADC channel to read beforehand
+ *      ADC_SetupChannel(1);
+ *
+ *      // Perform a single conversion of the ADC channel 1
+ *      ADC_GetChannelReading(ADC_REFERENCE_AVCC | ADC_RIGHT_ADJUSTED | ADC_CHANNEL1);
+ *      printf("Conversion Result: %d\r\n", ADC_GetResult());
+ *
+ *      // Start reading ADC channel 1 in free running (continuous conversion) mode
+ *      ADC_StartReading(ADC_REFERENCE_AVCC | ADC_RIGHT_ADJUSTED | ADC_CHANNEL1);
+ *      while (!(ADC_IsReadingComplete())) {};
+ *      printf("Conversion Result: %d\r\n", ADC_GetResult());
+ *  \endcode
+ *
+ *  @{
+ */
+
+#ifndef __ADC_AVR8_H__
+#define __ADC_AVR8_H__
+
+       /* Includes: */
+               #include "../../../Common/Common.h"
+
+       /* Enable C linkage for C++ Compilers: */
+               #if defined(__cplusplus)
+                       extern "C" {
+               #endif
+
+       /* Preprocessor Checks: */
+               #if !defined(__INCLUDE_FROM_ADC_H)
+                       #error Do not include this file directly. Include LUFA/Drivers/Peripheral/ADC.h instead.
+               #endif
+
+               #if !(defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB646__) || \
+                     defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__) || \
+                         defined(__AVR_ATmega16U4__)  || defined(__AVR_ATmega32U4__) || \
+                         defined(__AVR_ATmega32U6__))
+                       #error The ADC peripheral driver is not currently available for your selected microcontroller model.
+               #endif
+
+       /* Private Interface - For use in library only: */
+       #if !defined(__DOXYGEN__)
+               /* Macros: */
+                       #define _ADC_GET_MUX_MASK2(y)           ADC_CHANNEL ## y
+                       #define _ADC_GET_MUX_MASK(y)            _ADC_GET_MUX_MASK2(y)
+       #endif
+       
+       /* Public Interface - May be used in end-application: */
+               /* Macros: */
+                       /** \name ADC Reference Configuration Masks */
+                       //@{
+                       /** Reference mask, for using the voltage present at the AVR's AREF pin for the ADC reference. */
+                       #define ADC_REFERENCE_AREF              0
+
+                       /** Reference mask, for using the voltage present at the AVR's AVCC pin for the ADC reference. */
+                       #define ADC_REFERENCE_AVCC              (1 << REFS0)
+
+                       /** Reference mask, for using the internally generated 2.56V reference voltage as the ADC reference. */
+                       #define ADC_REFERENCE_INT2560MV         ((1 << REFS1) | (1 << REFS0))
+                       //@}
+                       
+                       /** \name ADC Result Adjustment Configuration Masks */
+                       //@{
+                       /** Left-adjusts the 10-bit ADC result, so that the upper 8 bits of the value returned by the
+                        *  \ref ADC_GetResult() macro contain the 8 most significant bits of the result.
+                        */
+                       #define ADC_LEFT_ADJUSTED               (1 << ADLAR)
+
+                       /** Right-adjusts the 10-bit ADC result, so that the lower 8 bits of the value returned by the
+                        *  \ref ADC_GetResult() macro contain the 8 least significant bits of the result.
+                        */
+                       #define ADC_RIGHT_ADJUSTED              (0 << ADLAR)
+                       //@}
+
+                       /** \name ADC Mode Configuration Masks */
+                       //@{
+                       /** Sets the ADC mode to free running, so that conversions take place continuously as fast as the ADC
+                        *  is capable of at the given input clock speed.
+                        */
+                       #define ADC_FREE_RUNNING                (1 << ADATE)
+
+                       /** Sets the ADC mode to single conversion, so that only a single conversion will take place before
+                        *  the ADC returns to idle.
+                        */
+                       #define ADC_SINGLE_CONVERSION           (0 << ADATE)
+                       //@}
+                       
+                       /** \name ADC Prescaler Configuration Masks */
+                       //@{
+                       /** Sets the ADC input clock to prescale by a factor of 2 the AVR's system clock. */
+                       #define ADC_PRESCALE_2                  (1 << ADPS0)
+
+                       /** Sets the ADC input clock to prescale by a factor of 4 the AVR's system clock. */
+                       #define ADC_PRESCALE_4                  (1 << ADPS1)
+
+                       /** Sets the ADC input clock to prescale by a factor of 8 the AVR's system clock. */
+                       #define ADC_PRESCALE_8                  ((1 << ADPS0) | (1 << ADPS1))
+
+                       /** Sets the ADC input clock to prescale by a factor of 16 the AVR's system clock. */
+                       #define ADC_PRESCALE_16                 (1 << ADPS2)
+
+                       /** Sets the ADC input clock to prescale by a factor of 32 the AVR's system clock. */
+                       #define ADC_PRESCALE_32                 ((1 << ADPS2) | (1 << ADPS0))
+
+                       /** Sets the ADC input clock to prescale by a factor of 64 the AVR's system clock. */
+                       #define ADC_PRESCALE_64                 ((1 << ADPS2) | (1 << ADPS1))
+
+                       /** Sets the ADC input clock to prescale by a factor of 128 the AVR's system clock. */
+                       #define ADC_PRESCALE_128                ((1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0))
+                       //@}
+
+                       /** \name ADC MUX Masks */
+                       //@{
+                       /** MUX mask define for the ADC0 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading(). */
+                       #define ADC_CHANNEL0                    (0x00 << MUX0)
+
+                       /** MUX mask define for the ADC1 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading(). */
+                       #define ADC_CHANNEL1                    (0x01 << MUX0)
+
+                       #if !(defined(__AVR_ATmega16U4__)  || defined(__AVR_ATmega32U4__) || defined(__DOXYGEN__))
+                               /** MUX mask define for the ADC2 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading().
+                                *
+                                *  \note Not available on all AVR models.
+                                */
+                               #define ADC_CHANNEL2                (0x02 << MUX0)
+
+                               /** MUX mask define for the ADC3 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading().
+                                *
+                                *  \note Not available on all AVR models.
+                                */
+                               #define ADC_CHANNEL3                (0x03 << MUX0)
+                       #endif
+
+                       /** MUX mask define for the ADC4 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading(). */
+                       #define ADC_CHANNEL4                    (0x04 << MUX0)
+
+                       /** MUX mask define for the ADC5 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading(). */
+                       #define ADC_CHANNEL5                    (0x05 << MUX0)
+
+                       /** MUX mask define for the ADC6 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading(). */
+                       #define ADC_CHANNEL6                    (0x06 << MUX0)
+
+                       /** MUX mask define for the ADC7 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading. */
+                       #define ADC_CHANNEL7                    (0x07 << MUX0)
+
+                       /** MUX mask define for the internal 1.1V bandgap channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading(). */
+                       #define ADC_1100MV_BANDGAP              (0x1E << MUX0)
+
+                       #if (defined(__AVR_ATmega16U4__)  || defined(__AVR_ATmega32U4__) || defined(__DOXYGEN__))
+                               /** MUX mask define for the ADC8 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading().
+                                *
+                                *  \note Not available on all AVR models.
+                                */
+                               #define ADC_CHANNEL8                ((1 << 8) | (0x00 << MUX0))
+
+                               /** MUX mask define for the ADC9 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading().
+                                *
+                                *  \note Not available on all AVR models.
+                                */
+                               #define ADC_CHANNEL9                ((1 << 8) | (0x01 << MUX0))
+
+                               /** MUX mask define for the ADC10 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading().
+                                *
+                                *  \note Not available on all AVR models.
+                                */
+                               #define ADC_CHANNEL10               ((1 << 8) | (0x02 << MUX0))
+
+                               /** MUX mask define for the ADC11 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading().
+                                *
+                                *  \note Not available on all AVR models.
+                                */
+                               #define ADC_CHANNEL11               ((1 << 8) | (0x03 << MUX0))
+
+                               /** MUX mask define for the ADC12 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading().
+                                *
+                                *  \note Not available on all AVR models.
+                                */
+                               #define ADC_CHANNEL12               ((1 << 8) | (0x04 << MUX0))
+
+                               /** MUX mask define for the ADC13 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading().
+                                *
+                                *  \note Not available on all AVR models.
+                                */
+                               #define ADC_CHANNEL13               ((1 << 8) | (0x05 << MUX0))
+
+                               /** MUX mask define for the internal temperature sensor channel of the ADC. See \ref ADC_StartReading() and
+                                *  \ref ADC_GetChannelReading().
+                                *
+                                *  \note Not available on all AVR models.
+                                */
+                               #define ADC_INT_TEMP_SENS           ((1 << 8) | (0x07 << MUX0))
+                       #endif
+
+                       /** Retrieves the ADC MUX mask for the given ADC channel number.
+                        *
+                        *  \note This macro will only work correctly on channel numbers that are compile-time
+                        *        constants defined by the preprocessor.
+                        *
+                        *  \param[in] Channel  Index of the ADC channel whose MUX mask is to be retrieved.
+                        */
+                       #define ADC_GET_CHANNEL_MASK(Channel)   _ADC_GET_MUX_MASK(Channel)
+                       //@}
+
+               /* Inline Functions: */
+                       /** Configures the given ADC channel, ready for ADC conversions. This function sets the
+                        *  associated port pin as an input and disables the digital portion of the I/O to reduce
+                        *  power consumption.
+                        *
+                        *  \note This must only be called for ADC channels with are connected to a physical port
+                        *        pin of the AVR, denoted by its special alternative function ADCx.
+                        *        \n\n
+                        *
+                        *  \note The channel number must be specified as an integer, and <b>not</b> a \c ADC_CHANNEL* mask.
+                        *
+                        *  \param[in] ChannelIndex  ADC channel number to set up for conversions.
+                        */
+                       static inline void ADC_SetupChannel(const uint8_t ChannelIndex)
+                       {
+                               #if (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB646__) || \
+                                        defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__) || \
+                                        defined(__AVR_ATmega32U6__))
+                               DDRF  &= ~(1 << ChannelIndex);
+                               DIDR0 |=  (1 << ChannelIndex);
+                               #elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))
+                               if (ChannelIndex < 8)
+                               {
+                                       DDRF  &= ~(1 << ChannelIndex);
+                                       DIDR0 |=  (1 << ChannelIndex);
+                               }
+                               else if (ChannelIndex == 8)
+                               {
+                                       DDRD  &= ~(1 << 4);
+                                       DIDR2 |=  (1 << 0);
+                               }
+                               else if (ChannelIndex < 11)
+                               {
+                                       DDRD  &= ~(1 << (ChannelIndex - 3));
+                                       DIDR2 |=  (1 << (ChannelIndex - 8));
+                               }
+                               else
+                               {
+                                       DDRB  &= ~(1 << (ChannelIndex - 7));
+                                       DIDR2 |=  (1 << (ChannelIndex - 8));
+                               }
+                               #endif
+                       }
+
+                       /** De-configures the given ADC channel, re-enabling digital I/O mode instead of analog. This
+                        *  function sets the associated port pin as an input and re-enabled the digital portion of
+                        *  the I/O.
+                        *
+                        *  \note This must only be called for ADC channels with are connected to a physical port
+                        *        pin of the AVR, denoted by its special alternative function ADCx.
+                        *        \n\n
+                        *
+                        *  \note The channel number must be specified as an integer, and <b>not</b> a \c ADC_CHANNEL* mask.
+                        *
+                        *  \param[in] ChannelIndex  ADC channel number to set up for conversions.
+                        */
+                       static inline void ADC_DisableChannel(const uint8_t ChannelIndex)
+                       {
+                               #if (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB646__) || \
+                                        defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__) || \
+                                        defined(__AVR_ATmega32U6__))
+                               DDRF  &= ~(1 << ChannelIndex);
+                               DIDR0 &= ~(1 << ChannelIndex);
+                               #elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))
+                               if (ChannelIndex < 8)
+                               {
+                                       DDRF  &= ~(1 << ChannelIndex);
+                                       DIDR0 &= ~(1 << ChannelIndex);
+                               }
+                               else if (ChannelIndex == 8)
+                               {
+                                       DDRD  &= ~(1 << 4);
+                                       DIDR2 &= ~(1 << 0);
+                               }
+                               else if (ChannelIndex < 11)
+                               {
+                                       DDRD  &= ~(1 << (ChannelIndex - 3));
+                                       DIDR2 &= ~(1 << (ChannelIndex - 8));
+                               }
+                               else
+                               {
+                                       DDRB  &= ~(1 << (ChannelIndex - 7));
+                                       DIDR2 &= ~(1 << (ChannelIndex - 8));
+                               }
+                               #endif
+                       }
+
+                       /** Starts the reading of the given channel, but does not wait until the conversion has completed.
+                        *  Once executed, the conversion status can be determined via the \ref ADC_IsReadingComplete() macro and
+                        *  the result read via the \ref ADC_GetResult() macro.
+                        *
+                        *  If the ADC has been initialized in free running mode, calling this function once will begin the repeated
+                        *  conversions. If the ADC is in single conversion mode (or the channel to convert from is to be changed),
+                        *  this function must be called each time a conversion is to take place.
+                        *
+                        *  \param[in] MUXMask  ADC channel mask, reference mask and adjustment mask.
+                        */
+                       static inline void ADC_StartReading(const uint16_t MUXMask)
+                       {
+                               ADMUX = MUXMask;
+
+                               #if (defined(__AVR_ATmega16U4__)  || defined(__AVR_ATmega32U4__) || defined(__DOXYGEN__))
+                               if (MUXMask & (1 << 8))
+                                 ADCSRB |=  (1 << MUX5);
+                               else
+                                 ADCSRB &= ~(1 << MUX5);
+                               #endif
+
+                               ADCSRA |= (1 << ADSC);
+                       }
+
+                       /** Indicates if the current ADC conversion is completed, or still in progress.
+                        *
+                        *  \return Boolean false if the reading is still taking place, or true if the conversion is
+                        *          complete and ready to be read out with \ref ADC_GetResult().
+                        */
+                       static inline bool ADC_IsReadingComplete(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
+                       static inline bool ADC_IsReadingComplete(void)
+                       {
+                               return ((ADCSRA & (1 << ADIF)) ? true : false);
+                       }
+
+                       /** Retrieves the conversion value of the last completed ADC conversion and clears the reading
+                        *  completion flag.
+                        *
+                        *  \return The result of the last ADC conversion as an unsigned value.
+                        */
+                       static inline uint16_t ADC_GetResult(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
+                       static inline uint16_t ADC_GetResult(void)
+                       {
+                               ADCSRA |= (1 << ADIF);
+                               return ADC;
+                       }
+
+                       /** Performs a complete single reading from channel, including a polling spin-loop to wait for the
+                        *  conversion to complete, and the returning of the converted value.
+                        *
+                        *  \note For free running mode, the automated conversions should be initialized with a single call
+                        *        to \ref ADC_StartReading() to select the channel and begin the automated conversions, and
+                        *        the results read directly from the \ref ADC_GetResult() instead to reduce overhead.
+                        *
+                        *  \param[in] MUXMask  Mask comprising of an ADC channel mask, reference mask and adjustment mask.
+                        */
+                       static inline uint16_t ADC_GetChannelReading(const uint16_t MUXMask) ATTR_WARN_UNUSED_RESULT;
+                       static inline uint16_t ADC_GetChannelReading(const uint16_t MUXMask)
+                       {
+                               ADC_StartReading(MUXMask);
+
+                               while (!(ADC_IsReadingComplete()));
+
+                               return ADC_GetResult();
+                       }
+
+                       /** Initialises the ADC, ready for conversions. This must be called before any other ADC operations.
+                        *  The "mode" parameter should be a mask comprised of a conversion mode (free running or single) and
+                        *  prescaler masks.
+                        *
+                        *  \param[in] Mode  Mask of ADC prescale and mode settings.
+                        */
+                       static inline void ADC_Init(uint8_t Mode) ATTR_ALWAYS_INLINE;
+                       static inline void ADC_Init(uint8_t Mode)
+                       {
+                               ADCSRA = ((1 << ADEN) | Mode);
+                       }
+
+                       /** Turns off the ADC. If this is called, any further ADC operations will require a call to
+                        *  \ref ADC_Init() before the ADC can be used again.
+                        */
+                       static inline void ADC_Disable(void) ATTR_ALWAYS_INLINE;
+                       static inline void ADC_Disable(void)
+                       {
+                               ADCSRA = 0;
+                       }
+
+                       /** Indicates if the ADC is currently enabled.
+                        *
+                        *  \return Boolean \c true if the ADC subsystem is currently enabled, \c false otherwise.
+                        */
+                       static inline bool ADC_GetStatus(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
+                       static inline bool ADC_GetStatus(void)
+                       {
+                               return ((ADCSRA & (1 << ADEN)) ? true : false);
+                       }
+
+       /* Disable C linkage for C++ Compilers: */
+               #if defined(__cplusplus)
+                       }
+               #endif
+
+#endif
+
+/** @} */
+
diff --git a/LUFA/Drivers/Peripheral/AVR8/SPI.h b/LUFA/Drivers/Peripheral/AVR8/SPI.h
new file mode 100644 (file)
index 0000000..d800fca
--- /dev/null
@@ -0,0 +1,239 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2011.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2011  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
+  without fee, provided that the above copyright notice appear in
+  all copies and that both that the copyright notice and this
+  permission notice and warranty disclaimer appear in supporting
+  documentation, and that the name of the author not be used in
+  advertising or publicity pertaining to distribution of the
+  software without specific, written prior permission.
+
+  The author disclaim all warranties with regard to this
+  software, including all implied warranties of merchantability
+  and fitness.  In no event shall the author be liable for any
+  special, indirect or consequential damages or any damages
+  whatsoever resulting from loss of use, data or profits, whether
+  in an action of contract, negligence or other tortious action,
+  arising out of or in connection with the use or performance of
+  this software.
+*/
+
+/** \file
+ *  \brief SPI Peripheral Driver (AVR8)
+ *
+ *  On-chip SPI driver for the 8-bit AVR microcontrollers.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the SPI driver
+ *        dispatch header located in LUFA/Drivers/Peripheral/SPI.h.
+ */
+
+/** \ingroup Group_SPI
+ *  \defgroup Group_SPI_AVR8 SPI Peripheral Driver (AVR8)
+ *
+ *  \section Sec_ModDescription Module Description
+ *  Driver for the hardware SPI port available on most 8-bit AVR microcontroller models. This
+ *  module provides an easy to use driver for the setup and transfer of data over the
+ *  AVR's SPI port.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the SPI driver
+ *        dispatch header located in LUFA/Drivers/Peripheral/SPI.h.
+ *
+ *  \section Sec_ExampleUsage Example Usage
+ *  The following snippet is an example of how this module may be used within a typical
+ *  application.
+ *
+ *  \code
+ *      // Initialise the SPI driver before first use
+ *      SPI_Init(SPI_SPEED_FCPU_DIV_2 | SPI_ORDER_MSB_FIRST | SPI_SCK_LEAD_FALLING |
+ *               SPI_SAMPLE_TRAILING | SPI_MODE_MASTER);
+ *
+ *      // Send several bytes, ignoring the returned data
+ *      SPI_SendByte(0x01);
+ *      SPI_SendByte(0x02);
+ *      SPI_SendByte(0x03);
+ *
+ *      // Receive several bytes, sending a dummy 0x00 byte each time
+ *      uint8_t Byte1 = SPI_ReceiveByte();
+ *      uint8_t Byte2 = SPI_ReceiveByte();
+ *      uint8_t Byte3 = SPI_ReceiveByte();
+ *
+ *      // Send a byte, and store the received byte from the same transaction
+ *      uint8_t ResponseByte = SPI_TransferByte(0xDC);
+ *  \endcode
+ * 
+ *  @{
+ */
+
+#ifndef __SPI_AVR8_H__
+#define __SPI_AVR8_H__
+
+       /* Includes: */
+               #include "../../../Common/Common.h"
+
+       /* Enable C linkage for C++ Compilers: */
+               #if defined(__cplusplus)
+                       extern "C" {
+               #endif
+
+       /* Preprocessor Checks: */
+               #if !defined(__INCLUDE_FROM_SPI_H)
+                       #error Do not include this file directly. Include LUFA/Drivers/Peripheral/SPI.h instead.
+               #endif
+
+       /* Private Interface - For use in library only: */
+       #if !defined(__DOXYGEN__)
+               /* Macros: */
+                       #define SPI_USE_DOUBLESPEED            (1 << SPE)
+       #endif
+
+       /* Public Interface - May be used in end-application: */
+               /* Macros: */
+                       /** \name SPI Prescaler Configuration Masks */
+                       //@{
+                       /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 2. */
+                       #define SPI_SPEED_FCPU_DIV_2           SPI_USE_DOUBLESPEED
+
+                       /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 4. */
+                       #define SPI_SPEED_FCPU_DIV_4           0
+
+                       /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 8. */
+                       #define SPI_SPEED_FCPU_DIV_8           (SPI_USE_DOUBLESPEED | (1 << SPR0))
+
+                       /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 16. */
+                       #define SPI_SPEED_FCPU_DIV_16          (1 << SPR0)
+
+                       /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 32. */
+                       #define SPI_SPEED_FCPU_DIV_32          (SPI_USE_DOUBLESPEED | (1 << SPR1))
+
+                       /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 64. */
+                       #define SPI_SPEED_FCPU_DIV_64          (SPI_USE_DOUBLESPEED | (1 << SPR1) | (1 << SPR0))
+
+                       /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 128. */
+                       #define SPI_SPEED_FCPU_DIV_128         ((1 << SPR1) | (1 << SPR0))
+                       //@}
+
+                       /** \name SPI SCK Polarity Configuration Masks */
+                       //@{
+                       /** SPI clock polarity mask for \c SPI_Init(). Indicates that the SCK should lead on the rising edge. */
+                       #define SPI_SCK_LEAD_RISING            (0 << CPOL)
+
+                       /** SPI clock polarity mask for \c SPI_Init(). Indicates that the SCK should lead on the falling edge. */
+                       #define SPI_SCK_LEAD_FALLING           (1 << CPOL)
+                       //@}
+
+                       /** \name SPI Sample Edge Configuration Masks */
+                       //@{
+                       /** SPI data sample mode mask for \c SPI_Init(). Indicates that the data should sampled on the leading edge. */
+                       #define SPI_SAMPLE_LEADING             (0 << CPHA)
+
+                       /** SPI data sample mode mask for \c SPI_Init(). Indicates that the data should be sampled on the trailing edge. */
+                       #define SPI_SAMPLE_TRAILING            (1 << CPHA)
+                       //@}
+                       
+                       /** \name SPI Data Ordering Configuration Masks */
+                       //@{
+                       /** SPI data order mask for \c SPI_Init(). Indicates that data should be shifted out MSB first. */
+                       #define SPI_ORDER_MSB_FIRST            (0 << DORD)
+
+                       /** SPI data order mask for \c SPI_Init(). Indicates that data should be shifted out MSB first. */
+                       #define SPI_ORDER_LSB_FIRST            (1 << DORD)
+                       //@}
+                       
+                       /** \name SPI Mode Configuration Masks */
+                       //@{
+                       /** SPI mode mask for \c SPI_Init(). Indicates that the SPI interface should be initialized into slave mode. */
+                       #define SPI_MODE_SLAVE                 (0 << MSTR)
+
+                       /** SPI mode mask for \c SPI_Init(). Indicates that the SPI interface should be initialized into master mode. */
+                       #define SPI_MODE_MASTER                (1 << MSTR)
+                       //@}
+                       
+               /* Inline Functions: */
+                       /** Initialises the SPI subsystem, ready for transfers. Must be called before calling any other
+                        *  SPI routines.
+                        *
+                        *  \param[in] SPIOptions  SPI Options, a mask consisting of one of each of the \c SPI_SPEED_*,
+                        *                         \c SPI_SCK_*, \c SPI_SAMPLE_*, \c SPI_ORDER_* and \c SPI_MODE_* masks.
+                        */
+                       static inline void SPI_Init(const uint8_t SPIOptions)
+                       {
+                               DDRB  |=  ((1 << 1) | (1 << 2));
+                               DDRB  &= ~((1 << 0) | (1 << 3));
+                               PORTB |=  ((1 << 0) | (1 << 3));
+
+                               SPCR   = ((1 << SPE) | SPIOptions);
+
+                               if (SPIOptions & SPI_USE_DOUBLESPEED)
+                                 SPSR |= (1 << SPI2X);
+                               else
+                                 SPSR &= ~(1 << SPI2X);
+                       }
+
+                       /** Turns off the SPI driver, disabling and returning used hardware to their default configuration. */
+                       static inline void SPI_Disable(void)
+                       {
+                               DDRB  &= ~((1 << 1) | (1 << 2));
+                               PORTB &= ~((1 << 0) | (1 << 3));
+
+                               SPCR   = 0;
+                               SPSR   = 0;
+                       }
+
+                       /** Sends and receives a byte through the SPI interface, blocking until the transfer is complete.
+                        *
+                        *  \param[in] Byte  Byte to send through the SPI interface.
+                        *
+                        *  \return Response byte from the attached SPI device.
+                        */
+                       static inline uint8_t SPI_TransferByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
+                       static inline uint8_t SPI_TransferByte(const uint8_t Byte)
+                       {
+                               SPDR = Byte;
+                               while (!(SPSR & (1 << SPIF)));
+                               return SPDR;
+                       }
+
+                       /** Sends a byte through the SPI interface, blocking until the transfer is complete. The response
+                        *  byte sent to from the attached SPI device is ignored.
+                        *
+                        *  \param[in] Byte  Byte to send through the SPI interface.
+                        */
+                       static inline void SPI_SendByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
+                       static inline void SPI_SendByte(const uint8_t Byte)
+                       {
+                               SPDR = Byte;
+                               while (!(SPSR & (1 << SPIF)));
+                       }
+
+                       /** Sends a dummy byte through the SPI interface, blocking until the transfer is complete. The response
+                        *  byte from the attached SPI device is returned.
+                        *
+                        *  \return The response byte from the attached SPI device.
+                        */
+                       static inline uint8_t SPI_ReceiveByte(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;
+                       static inline uint8_t SPI_ReceiveByte(void)
+                       {
+                               SPDR = 0x00;
+                               while (!(SPSR & (1 << SPIF)));
+                               return SPDR;
+                       }
+
+       /* Disable C linkage for C++ Compilers: */
+               #if defined(__cplusplus)
+                       }
+               #endif
+
+#endif
+
+/** @} */
+
diff --git a/LUFA/Drivers/Peripheral/AVR8/Serial.c b/LUFA/Drivers/Peripheral/AVR8/Serial.c
new file mode 100644 (file)
index 0000000..3a8312d
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2011.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2011  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
+  without fee, provided that the above copyright notice appear in
+  all copies and that both that the copyright notice and this
+  permission notice and warranty disclaimer appear in supporting
+  documentation, and that the name of the author not be used in
+  advertising or publicity pertaining to distribution of the
+  software without specific, written prior permission.
+
+  The author disclaim all warranties with regard to this
+  software, including all implied warranties of merchantability
+  and fitness.  In no event shall the author be liable for any
+  special, indirect or consequential damages or any damages
+  whatsoever resulting from loss of use, data or profits, whether
+  in an action of contract, negligence or other tortious action,
+  arising out of or in connection with the use or performance of
+  this software.
+*/
+
+#define  __INCLUDE_FROM_SERIAL_C
+#include "Serial.h"
+
+FILE USARTSerialStream;
+
+int Serial_putchar(char DataByte,
+                   FILE *Stream)
+{
+       (void)Stream;
+
+       Serial_SendByte(DataByte);
+       return 0;
+}
+
+int Serial_getchar(FILE *Stream)
+{
+       (void)Stream;
+
+       if (!(Serial_IsCharReceived()))
+         return _FDEV_EOF;
+
+       return Serial_ReceiveByte();
+}
+
+int Serial_getchar_Blocking(FILE *Stream)
+{
+       (void)Stream;
+
+       while (!(Serial_IsCharReceived()));
+       return Serial_ReceiveByte();
+}
+
+void Serial_SendString_P(const char* FlashStringPtr)
+{
+       uint8_t CurrByte;
+
+       while ((CurrByte = pgm_read_byte(FlashStringPtr)) != 0x00)
+       {
+               Serial_SendByte(CurrByte);
+               FlashStringPtr++;
+       }
+}
+
+void Serial_SendString(const char* StringPtr)
+{
+       uint8_t CurrByte;
+
+       while ((CurrByte = *StringPtr) != 0x00)
+       {
+               Serial_SendByte(CurrByte);
+               StringPtr++;
+       }
+}
+
+void Serial_SendData(const uint8_t* Buffer, uint16_t Length)
+{
+       while (Length--)
+         Serial_SendByte(*(Buffer++));
+}
diff --git a/LUFA/Drivers/Peripheral/AVR8/Serial.h b/LUFA/Drivers/Peripheral/AVR8/Serial.h
new file mode 100644 (file)
index 0000000..bb9ba85
--- /dev/null
@@ -0,0 +1,251 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2011.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2011  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
+  without fee, provided that the above copyright notice appear in
+  all copies and that both that the copyright notice and this
+  permission notice and warranty disclaimer appear in supporting
+  documentation, and that the name of the author not be used in
+  advertising or publicity pertaining to distribution of the
+  software without specific, written prior permission.
+
+  The author disclaim all warranties with regard to this
+  software, including all implied warranties of merchantability
+  and fitness.  In no event shall the author be liable for any
+  special, indirect or consequential damages or any damages
+  whatsoever resulting from loss of use, data or profits, whether
+  in an action of contract, negligence or other tortious action,
+  arising out of or in connection with the use or performance of
+  this software.
+*/
+
+/** \file
+ *  \brief Serial USART Peripheral Driver (AVR8)
+ *
+ *  On-chip serial USART driver for the 8-bit AVR microcontrollers.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the USART driver
+ *        dispatch header located in LUFA/Drivers/Peripheral/Serial.h.
+ */
+
+/** \ingroup Group_Serial
+ *  \defgroup Group_Serial_AVR8 Serial USART Peripheral Driver (AVR8)
+ *
+ *  \section Sec_ModDescription Module Description
+ *  On-chip serial USART driver for the 8-bit AVR microcontrollers.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the ADC driver
+ *        dispatch header located in LUFA/Drivers/Peripheral/Serial.h.
+ *
+ *  \section Sec_ExampleUsage Example Usage
+ *  The following snippet is an example of how this module may be used within a typical
+ *  application.
+ *
+ *  \code
+ *      // Initialise the serial USART driver before first use, with 9600 baud (and no double-speed mode)
+ *      Serial_Init(9600, false);
+ *
+ *      // Send a string through the USART
+ *      Serial_TxString("Test String\r\n");
+ *
+ *      // Receive a byte through the USART
+ *      uint8_t DataByte = Serial_RxByte();
+ *  \endcode
+ *
+ *  @{
+ */
+
+#ifndef __SERIAL_AVR8_H__
+#define __SERIAL_AVR8_H__
+
+       /* Includes: */
+               #include "../../../Common/Common.h"
+               #include "../../Misc/TerminalCodes.h"
+               
+               #include <stdio.h>
+
+       /* Enable C linkage for C++ Compilers: */
+               #if defined(__cplusplus)
+                       extern "C" {
+               #endif
+
+       /* Preprocessor Checks: */
+               #if !defined(__INCLUDE_FROM_SERIAL_H) && !defined(__INCLUDE_FROM_SERIAL_C)
+                       #error Do not include this file directly. Include LUFA/Drivers/Peripheral/Serial.h instead.
+               #endif
+
+       /* Private Interface - For use in library only: */
+       #if !defined(__DOXYGEN__)
+               /* External Variables: */
+                       extern FILE USARTSerialStream;
+       
+               /* Function Prototypes: */
+                       int Serial_putchar(char DataByte,
+                                          FILE *Stream);
+                       int Serial_getchar(FILE *Stream);
+                       int Serial_getchar_Blocking(FILE *Stream);
+       #endif
+
+       /* Public Interface - May be used in end-application: */
+               /* Macros: */
+                       /** Macro for calculating the baud value from a given baud rate when the U2X (double speed) bit is
+                        *  not set.
+                        */
+                       #define SERIAL_UBBRVAL(baud)    ((((F_CPU / 16) + (baud / 2)) / (baud)) - 1)
+
+                       /** Macro for calculating the baud value from a given baud rate when the U2X (double speed) bit is
+                        *  set.
+                        */
+                       #define SERIAL_2X_UBBRVAL(baud) ((((F_CPU / 8) + (baud / 2)) / (baud)) - 1)
+
+               /* Function Prototypes: */
+                       /** Transmits a given string located in program space (FLASH) through the USART.
+                        *
+                        *  \param[in] FlashStringPtr  Pointer to a string located in program space.
+                        */
+                       void Serial_SendString_P(const char* FlashStringPtr) ATTR_NON_NULL_PTR_ARG(1);
+
+                       /** Transmits a given string located in SRAM memory through the USART.
+                        *
+                        *  \param[in] StringPtr  Pointer to a string located in SRAM space.
+                        */
+                       void Serial_SendString(const char* StringPtr) ATTR_NON_NULL_PTR_ARG(1);
+                       
+                       /** Transmits a given buffer located in SRAM memory through the USART.
+                        *
+                        *  \param[in] Buffer  Pointer to a buffer containing the data to send.
+                        *  \param[in] Length  Length of the data to send, in bytes.
+                        */
+                       void Serial_SendData(const uint8_t* Buffer, uint16_t Length) ATTR_NON_NULL_PTR_ARG(1);
+
+               /* Inline Functions: */
+                       /** Initializes the USART, ready for serial data transmission and reception. This initializes the interface to
+                        *  standard 8-bit, no parity, 1 stop bit settings suitable for most applications.
+                        *
+                        *  \param[in] BaudRate     Serial baud rate, in bits per second.
+                        *  \param[in] DoubleSpeed  Enables double speed mode when set, halving the sample time to double the baud rate.
+                        */
+                       static inline void Serial_Init(const uint32_t BaudRate,
+                                                      const bool DoubleSpeed)
+                       {
+                               UBRR1  = (DoubleSpeed ? SERIAL_2X_UBBRVAL(BaudRate) : SERIAL_UBBRVAL(BaudRate));
+
+                               UCSR1C = ((1 << UCSZ11) | (1 << UCSZ10));
+                               UCSR1A = (DoubleSpeed ? (1 << U2X1) : 0);
+                               UCSR1B = ((1 << TXEN1)  | (1 << RXEN1));
+
+                               DDRD  |= (1 << 3);
+                               PORTD |= (1 << 2);
+                       }
+
+                       /** Turns off the USART driver, disabling and returning used hardware to their default configuration. */
+                       static inline void Serial_Disable(void)
+                       {
+                               UCSR1B = 0;
+                               UCSR1A = 0;
+                               UCSR1C = 0;
+
+                               UBRR1  = 0;
+
+                               DDRD  &= ~(1 << 3);
+                               PORTD &= ~(1 << 2);
+                       }
+
+                       /** Creates a standard character stream from the USART so that it can be used with all the regular functions
+                        *  in the avr-libc \c <stdio.h> library that accept a \c FILE stream as a destination (e.g. \c fprintf). The created
+                        *  stream is bidirectional and can be used for both input and output functions.
+                        *
+                        *  Reading data from this stream is non-blocking, i.e. in most instances, complete strings cannot be read in by a single
+                        *  fetch, as the endpoint will not be ready at some point in the transmission, aborting the transfer. However, this may
+                        *  be used when the read data is processed byte-per-bye (via \c getc()) or when the user application will implement its own
+                        *  line buffering.
+                        *
+                        *  \param[in,out] Stream  Pointer to a FILE structure where the created stream should be placed, if \c NULL stdio
+                        *                         and stdin will be configured to use the USART.
+                        *
+                        *  \pre The USART must first be configured via a call to \ref Serial_Init() before the stream is used.
+                        */
+                       static inline void Serial_CreateStream(FILE* Stream)
+                       {
+                               if (!(Stream))
+                               {
+                                       Stream = &USARTSerialStream;
+                                       stdin  = Stream;
+                                       stdout = Stream;
+                               }
+                       
+                               *Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar, _FDEV_SETUP_RW);
+                       }
+
+                       /** Identical to \ref Serial_CreateStream(), except that reads are blocking until the calling stream function terminates
+                        *  the transfer.
+                        *
+                        *  \param[in,out] Stream  Pointer to a FILE structure where the created stream should be placed, if \c NULL stdio
+                        *                         and stdin will be configured to use the USART.
+                        *
+                        *  \pre The USART must first be configured via a call to \ref Serial_Init() before the stream is used.
+                        */
+                       static inline void Serial_CreateBlockingStream(FILE* Stream)
+                       {
+                               if (!(Stream))
+                               {
+                                       Stream = &USARTSerialStream;
+                                       stdin  = Stream;
+                                       stdout = Stream;
+                               }
+
+                               *Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar_Blocking, _FDEV_SETUP_RW);
+                       }
+
+                       /** Indicates whether a character has been received through the USART.
+                        *
+                        *  \return Boolean \c true if a character has been received, \c false otherwise.
+                        */
+                       static inline bool Serial_IsCharReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
+                       static inline bool Serial_IsCharReceived(void)
+                       {
+                               return ((UCSR1A & (1 << RXC1)) ? true : false);
+                       }
+
+                       /** Transmits a given byte through the USART.
+                        *
+                        *  \param[in] DataByte  Byte to transmit through the USART.
+                        */
+                       static inline void Serial_SendByte(const char DataByte) ATTR_ALWAYS_INLINE;
+                       static inline void Serial_SendByte(const char DataByte)
+                       {
+                               while (!(UCSR1A & (1 << UDRE1)));
+                               UDR1 = DataByte;
+                       }
+
+                       /** Receives the next byte from the USART.
+                        *
+                        *  \return Next byte received from the USART, or a negative value if no byte has been received.
+                        */
+                       static inline int16_t Serial_ReceiveByte(void) ATTR_ALWAYS_INLINE;
+                       static inline int16_t Serial_ReceiveByte(void)
+                       {
+                               if (!(Serial_IsCharReceived()))
+                                 return -1;
+                               
+                               return UDR1;
+                       }
+
+       /* Disable C linkage for C++ Compilers: */
+               #if defined(__cplusplus)
+                       }
+               #endif
+
+#endif
+
+/** @} */
+
diff --git a/LUFA/Drivers/Peripheral/AVR8/TWI.c b/LUFA/Drivers/Peripheral/AVR8/TWI.c
new file mode 100644 (file)
index 0000000..b5f258d
--- /dev/null
@@ -0,0 +1,144 @@
+/*
+     Copyright (C) Dean Camera, 2011.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+#define  __INCLUDE_FROM_TWI_C
+#include "TWI.h"
+
+uint8_t TWI_StartTransmission(const uint8_t SlaveAddress,
+                              const uint8_t TimeoutMS)
+{
+       for (;;)
+       {
+               bool     BusCaptured = false;
+               uint16_t TimeoutRemaining;
+
+               TWCR = ((1 << TWINT) | (1 << TWSTA) | (1 << TWEN));
+
+               TimeoutRemaining = (TimeoutMS * 100);
+               while (TimeoutRemaining-- && !(BusCaptured))
+               {
+                       if (TWCR & (1 << TWINT))
+                       {
+                               switch (TWSR & TW_STATUS_MASK)
+                               {
+                                       case TW_START:
+                                       case TW_REP_START:
+                                               BusCaptured = true;
+                                               break;
+                                       case TW_MT_ARB_LOST:
+                                               TWCR = ((1 << TWINT) | (1 << TWSTA) | (1 << TWEN));
+                                               continue;
+                                       default:
+                                               TWCR = (1 << TWEN);
+                                               return TWI_ERROR_BusFault;
+                               }
+                       }
+
+                       _delay_us(10);
+               }
+
+               if (!(TimeoutRemaining))
+               {
+                       TWCR = (1 << TWEN);
+                       return TWI_ERROR_BusCaptureTimeout;
+               }
+
+               TWDR = SlaveAddress;
+               TWCR = ((1 << TWINT) | (1 << TWEN));
+
+               TimeoutRemaining = (TimeoutMS * 100);
+               while (TimeoutRemaining--)
+               {
+                       if (TWCR & (1 << TWINT))
+                         break;
+
+                       _delay_us(10);
+               }
+
+               if (!(TimeoutRemaining))
+                 return TWI_ERROR_SlaveResponseTimeout;
+
+               switch (TWSR & TW_STATUS_MASK)
+               {
+                       case TW_MT_SLA_ACK:
+                       case TW_MR_SLA_ACK:
+                               return TWI_ERROR_NoError;
+                       default:
+                               TWCR = ((1 << TWINT) | (1 << TWSTO) | (1 << TWEN));
+                               return TWI_ERROR_SlaveNotReady;
+               }
+       }
+}
+
+uint8_t TWI_ReadPacket(const uint8_t SlaveAddress,
+                       const uint8_t TimeoutMS,
+                       const uint8_t* InternalAddress,
+                       uint8_t InternalAddressLen,
+                       uint8_t* Buffer,
+                       uint8_t Length)
+{
+       uint8_t ErrorCode;
+       
+       if ((ErrorCode = TWI_WritePacket(SlaveAddress, TimeoutMS, InternalAddress, InternalAddressLen,
+                                        NULL, 0)) != TWI_ERROR_NoError)
+       {
+               return ErrorCode;
+       }
+
+       if ((ErrorCode = TWI_StartTransmission((SlaveAddress & TWI_DEVICE_ADDRESS_MASK) | TWI_ADDRESS_READ,
+                                                                                  TimeoutMS)) == TWI_ERROR_NoError)
+       {
+               while (Length--)
+               {
+                       if (!(TWI_ReceiveByte(Buffer++, (Length == 0))))
+                       {
+                               ErrorCode = TWI_ERROR_SlaveNAK;
+                               break;
+                       }
+               }
+               
+               TWI_StopTransmission();
+       }
+       
+       return ErrorCode;
+}
+
+uint8_t TWI_WritePacket(const uint8_t SlaveAddress,
+                        const uint8_t TimeoutMS,
+                        const uint8_t* InternalAddress,
+                        uint8_t InternalAddressLen,
+                        const uint8_t* Buffer,
+                        uint8_t Length)
+{
+       uint8_t ErrorCode;
+
+       if ((ErrorCode = TWI_StartTransmission((SlaveAddress & TWI_DEVICE_ADDRESS_MASK) | TWI_ADDRESS_WRITE,
+                                              TimeoutMS)) == TWI_ERROR_NoError)
+       {
+               while (InternalAddressLen--)
+               {
+                       if (!(TWI_SendByte(*(InternalAddress++))))
+                       {
+                               ErrorCode = TWI_ERROR_SlaveNAK;
+                               break;
+                       }
+               }
+
+               while (Length--)
+               {
+                       if (!(TWI_SendByte(*(Buffer++))))
+                       {
+                               ErrorCode = TWI_ERROR_SlaveNAK;
+                               break;
+                       }
+               }
+               
+               TWI_StopTransmission();
+       }
+       
+       return ErrorCode;
+}
diff --git a/LUFA/Drivers/Peripheral/AVR8/TWI.h b/LUFA/Drivers/Peripheral/AVR8/TWI.h
new file mode 100644 (file)
index 0000000..e034233
--- /dev/null
@@ -0,0 +1,286 @@
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2011.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2011  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
+  without fee, provided that the above copyright notice appear in
+  all copies and that both that the copyright notice and this
+  permission notice and warranty disclaimer appear in supporting
+  documentation, and that the name of the author not be used in
+  advertising or publicity pertaining to distribution of the
+  software without specific, written prior permission.
+
+  The author disclaim all warranties with regard to this
+  software, including all implied warranties of merchantability
+  and fitness.  In no event shall the author be liable for any
+  special, indirect or consequential damages or any damages
+  whatsoever resulting from loss of use, data or profits, whether
+  in an action of contract, negligence or other tortious action,
+  arising out of or in connection with the use or performance of
+  this software.
+*/
+
+/** \file
+ *  \brief TWI Peripheral Driver (AVR8)
+ *
+ *  On-chip TWI driver for the 8-bit AVR microcontrollers.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the TWI driver
+ *        dispatch header located in LUFA/Drivers/Peripheral/TWI.h.
+ */
+
+/** \ingroup Group_TWI
+ *  \defgroup Group_TWI_AVR8 TWI Peripheral Driver (AVR8)
+ *
+ *  \section Sec_ModDescription Module Description
+ *  Master mode TWI driver for the 8-bit AVR microcontrollers which contain a hardware TWI module.
+ *
+ *  \note This file should not be included directly. It is automatically included as needed by the TWI driver
+ *        dispatch header located in LUFA/Drivers/Peripheral/TWI.h.
+ *
+ *  \section Sec_ExampleUsage Example Usage
+ *  The following snippet is an example of how this module may be used within a typical
+ *  application.
+ *
+ *  <b>Low Level API Example:</b>
+ *  \code
+ *      // Initialise the TWI driver before first use
+ *      TWI_Init();
+ *
+ *      // Start a write session to device at device address 0xA0, internal address 0xDC with a 10ms timeout
+ *      if (TWI_StartTransmission(0xA0 | TWI_ADDRESS_WRITE, 10))
+ *      {
+ *          TWI_SendByte(0xDC);
+ *
+ *          TWI_SendByte(0x01);
+ *          TWI_SendByte(0x02);
+ *          TWI_SendByte(0x03);
+ *
+ *          // Must stop transmission afterwards to release the bus
+ *          TWI_StopTransmission();
+ *      }
+ *
+ *      // Start a read session to device at address 0xA0, internal address 0xDC with a 10ms timeout
+ *      if (TWI_StartTransmission(0xA0 | TWI_ADDRESS_WRITE, 10))
+ *      {
+ *          TWI_SendByte(0xDC);
+ *          TWI_StopTransmission();
+ *
+ *          if (TWI_StartTransmission(0xA0 | TWI_ADDRESS_READ, 10))
+ *          {
+ *              uint8_t Byte1, Byte2, Byte3;
+ *
+ *              // Read three bytes, acknowledge after the third byte is received
+ *              TWI_ReceiveByte(&Byte1, false);
+ *              TWI_ReceiveByte(&Byte2, false);
+ *              TWI_ReceiveByte(&Byte3, true);
+ *
+ *              // Must stop transmission afterwards to release the bus
+ *              TWI_StopTransmission();
+ *          }
+ *      }
+ *  \endcode
+ * 
+ *  <b>High Level API Example:</b>
+ *  \code
+ *      // Initialise the TWI driver before first use
+ *      TWI_Init();
+ *
+ *      // Start a write session to device at device address 0xA0, internal address 0xDC with a 10ms timeout
+ *      uint8_t InternalWriteAddress = 0xDC;
+ *      uint8_t WritePacket[3] = {0x01, 0x02, 0x03};
+ *
+ *      TWI_WritePacket(0xA0, 10, &InternalWriteAddress, sizeof(InternalWriteAddress),
+ *                      &WritePacket, sizeof(WritePacket);
+ *
+ *      // Start a read session to device at address 0xA0, internal address 0xDC with a 10ms timeout
+ *      uint8_t InternalReadAddress = 0xDC;
+ *      uint8_t ReadPacket[3];
+ *
+ *      TWI_ReadPacket(0xA0, 10, &InternalReadAddress, sizeof(InternalReadAddress),
+ *                     &ReadPacket, sizeof(ReadPacket);
+ *  \endcode
+ *
+ *  @{
+ */
+
+#ifndef __TWI_AVR8_H__
+#define __TWI_AVR8_H__
+
+       /* Includes: */
+               #include "../../../Common/Common.h"
+
+               #include <stdio.h>
+               #include <util/twi.h>
+
+       /* Enable C linkage for C++ Compilers: */
+               #if defined(__cplusplus)
+                       extern "C" {
+               #endif
+
+       /* Preprocessor Checks: */
+               #if !defined(__INCLUDE_FROM_TWI_H) && !defined(__INCLUDE_FROM_TWI_C)
+                       #error Do not include this file directly. Include LUFA/Drivers/Peripheral/TWI.h instead.
+               #endif
+
+               #if !(defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB646__) || \
+                     defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__) || \
+                         defined(__AVR_ATmega16U4__)  || defined(__AVR_ATmega32U4__) || \
+                         defined(__AVR_ATmega32U6__))
+                       #error The TWI peripheral driver is not currently available for your selected microcontroller model.
+               #endif
+
+       /* Public Interface - May be used in end-application: */
+               /* Macros: */
+                       /** TWI slave device address mask for a read session. Mask with a slave device base address to obtain
+                        *  the correct TWI bus address for the slave device when reading data from it.
+                        */
+                       #define TWI_ADDRESS_READ         0x00
+
+                       /** TWI slave device address mask for a write session. Mask with a slave device base address to obtain
+                        *  the correct TWI bus address for the slave device when writing data to it.
+                        */
+                       #define TWI_ADDRESS_WRITE        0x01
+
+                       /** Mask to retrieve the base address for a TWI device, which can then be ORed with \ref TWI_ADDRESS_READ
+                        *  or \ref TWI_ADDRESS_WRITE to obtain the device's read and write address respectively.
+                        */
+                       #define TWI_DEVICE_ADDRESS_MASK  0xFE
+                       
+               /* Enums: */
+                       /** Enum for the possible return codes of the TWI transfer start routine and other dependant TWI functions. */
+                       enum TWI_ErrorCodes_t
+                       {
+                               TWI_ERROR_NoError              = 0, /**< Indicates that the command completed sucessfully. */
+                               TWI_ERROR_BusFault             = 1, /**< A TWI bus fault occurred while attempting to capture the bus. */
+                               TWI_ERROR_BusCaptureTimeout    = 2, /**< A timeout occurred whilst waiting for the bus to be ready. */
+                               TWI_ERROR_SlaveResponseTimeout = 3, /**< No ACK received at the nominated slave address within the timeout period. */
+                               TWI_ERROR_SlaveNotReady        = 4, /**< Slave NAKed the TWI bus START condition. */
+                               TWI_ERROR_SlaveNAK             = 5, /**< Slave NAKed whilst attempting to send data to the device. */
+                       };
+       
+               /* Inline Functions: */
+                       /** Initialises the TWI hardware into master mode, ready for data transmission and reception. This must be
+                        *  before any other TWI operations.
+                        */
+                       static inline void TWI_Init(void) ATTR_ALWAYS_INLINE;
+                       static inline void TWI_Init(void)
+                       {
+                               TWCR |=  (1 << TWEN);
+                       }
+
+                       /** Turns off the TWI driver hardware. If this is called, any further TWI operations will require a call to
+                        *  \ref TWI_Init() before the TWI can be used again.
+                        */
+                       static inline void TWI_Disable(void) ATTR_ALWAYS_INLINE;
+                       static inline void TWI_Disable(void)
+                       {
+                               TWCR &= ~(1 << TWEN);
+                       }
+
+                       /** Sends a TWI STOP onto the TWI bus, terminating communication with the currently addressed device. */
+                       static inline void TWI_StopTransmission(void) ATTR_ALWAYS_INLINE;
+                       static inline void TWI_StopTransmission(void)
+                       {
+                               TWCR = ((1 << TWINT) | (1 << TWSTO) | (1 << TWEN));
+                       }
+
+                       /** Sends a byte to the currently addressed device on the TWI bus.
+                        *
+                        *  \param[in] Byte  Byte to send to the currently addressed device
+                        *
+                        *  \return Boolean \c true if the recipient ACKed the byte, \c false otherwise
+                        */
+                       static inline bool TWI_SendByte(const uint8_t Byte)
+                       {
+                               TWDR = Byte;
+                               TWCR = ((1 << TWINT) | (1 << TWEN));
+                               while (!(TWCR & (1 << TWINT)));
+
+                               return ((TWSR & TW_STATUS_MASK) == TW_MT_DATA_ACK);
+                       }
+
+                       /** Receives a byte from the currently addressed device on the TWI bus.
+                        *
+                        *  \param[in] Byte      Location where the read byte is to be stored
+                        *  \param[in] LastByte  Indicates if the byte should be ACKed if false, NAKed if true
+                        *
+                        *  \return Boolean \c true if the byte reception successfully completed, \c false otherwise
+                        */
+                       static inline uint8_t TWI_ReceiveByte(uint8_t* const Byte,
+                                                             const bool LastByte)
+                       {
+                               uint8_t TWCRMask = ((1 << TWINT) | (1 << TWEN));
+
+                               if (!(LastByte))
+                                 TWCRMask |= (1 << TWEA);
+
+                               TWCR = TWCRMask;
+                               while (!(TWCR & (1 << TWINT)));
+                               *Byte = TWDR;
+
+                               return ((TWSR & TW_STATUS_MASK) == TW_MR_DATA_ACK);
+                       }
+
+               /* Function Prototypes: */
+                       /** Begins a master mode TWI bus communication with the given slave device address.
+                        *
+                        *  \param[in] SlaveAddress  Address of the slave TWI device to communicate with
+                        *  \param[in] TimeoutMS     Timeout period within which the slave must respond, in milliseconds
+                        *
+                        *  \return A value from the \ref TWI_ErrorCodes_t enum
+                        */
+                       uint8_t TWI_StartTransmission(const uint8_t SlaveAddress,
+                                                     const uint8_t TimeoutMS);
+
+                       /** High level function to perform a complete packet transfer over the TWI bus to the specified
+                        *  device.
+                        *
+                        *  \param[in] SlaveAddress        Base address of the TWI slave device to communicate with
+                        *  \param[in] TimeoutMS           Timeout for bus capture and slave START ACK, in milliseconds
+                        *  \param[in] InternalAddress     Pointer to a location where the internal slave read start address is stored
+                        *  \param[in] InternalAddressLen  Size of the internal device address, in bytes
+                        *  \param[in] Buffer              Pointer to a buffer where the read packet data is to be stored
+                        *  \param[in] Length              Size of the packet to read, in bytes
+                        */
+                       uint8_t TWI_ReadPacket(const uint8_t SlaveAddress,
+                                              const uint8_t TimeoutMS,
+                                              const uint8_t* InternalAddress,
+                                              uint8_t InternalAddressLen,
+                                              uint8_t* Buffer,
+                                              uint8_t Length);
+
+                       /** High level function to perform a complete packet transfer over the TWI bus from the specified
+                        *  device.
+                        *
+                        *  \param[in] SlaveAddress        Base address of the TWI slave device to communicate with
+                        *  \param[in] TimeoutMS           Timeout for bus capture and slave START ACK, in milliseconds
+                        *  \param[in] InternalAddress     Pointer to a location where the internal slave write start address is stored
+                        *  \param[in] InternalAddressLen  Size of the internal device address, in bytes
+                        *  \param[in] Buffer              Pointer to a buffer where the packet data to send is stored
+                        *  \param[in] Length              Size of the packet to send, in bytes
+                        */
+                       uint8_t TWI_WritePacket(const uint8_t SlaveAddress,
+                                               const uint8_t TimeoutMS,
+                                               const uint8_t* InternalAddress,
+                                               uint8_t InternalAddressLen,
+                                               const uint8_t* Buffer,
+                                               uint8_t Length);
+
+       /* Disable C linkage for C++ Compilers: */
+               #if defined(__cplusplus)
+                       }
+               #endif
+
+#endif
+
+/** @} */
+
diff --git a/LUFA/Drivers/Peripheral/AVRU4U6U7/ADC.h b/LUFA/Drivers/Peripheral/AVRU4U6U7/ADC.h
deleted file mode 100644 (file)
index ddeb53a..0000000
+++ /dev/null
@@ -1,448 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2011.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2011  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
-  without fee, provided that the above copyright notice appear in
-  all copies and that both that the copyright notice and this
-  permission notice and warranty disclaimer appear in supporting
-  documentation, and that the name of the author not be used in
-  advertising or publicity pertaining to distribution of the
-  software without specific, written prior permission.
-
-  The author disclaim all warranties with regard to this
-  software, including all implied warranties of merchantability
-  and fitness.  In no event shall the author be liable for any
-  special, indirect or consequential damages or any damages
-  whatsoever resulting from loss of use, data or profits, whether
-  in an action of contract, negligence or other tortious action,
-  arising out of or in connection with the use or performance of
-  this software.
-*/
-
-/** \file
- *  \brief ADC peripheral driver for the U7, U6 and U4 USB AVRs.
- *
- *  On-chip Analogue-to-Digital converter (ADC) driver for supported U4, U6 and U7 model AVRs that contain an ADC
- *  peripheral internally.
- *
- *  \note This file should not be included directly. It is automatically included as needed by the ADC driver
- *        dispatch header located in LUFA/Drivers/Peripheral/ADC.h.
- */
-
-/** \ingroup Group_ADC
- *  @defgroup Group_ADC_AVRU4U6U7 Series U4, U6 and U7 Model ADC Driver
- *
- *  On-chip Analogue-to-Digital converter (ADC) driver for supported U4, U6 and U7 model AVRs that contain an ADC
- *  peripheral internally.
- *
- *  \note This file should not be included directly. It is automatically included as needed by the ADC driver
- *        dispatch header located in LUFA/Drivers/Peripheral/ADC.h.
- *
- *  \section Sec_ExampleUsage Example Usage
- *  The following snippet is an example of how this module may be used within a typical
- *  application.
- *
- *  \code
- *      // Initialise the ADC driver before first use
- *      ADC_Init(ADC_FREE_RUNNING | ADC_PRESCALE_32);
- *
- *      // Must setup the ADC channel to read beforehand
- *      ADC_SetupChannel(1);
- *
- *      // Perform a single conversion of the ADC channel 1
- *      ADC_GetChannelReading(ADC_REFERENCE_AVCC | ADC_RIGHT_ADJUSTED | ADC_CHANNEL1);
- *      printf("Conversion Result: %d\r\n", ADC_GetResult());
- *
- *      // Start reading ADC channel 1 in free running (continuous conversion) mode
- *      ADC_StartReading(ADC_REFERENCE_AVCC | ADC_RIGHT_ADJUSTED | ADC_CHANNEL1);
- *      while (!(ADC_IsReadingComplete())) {};
- *      printf("Conversion Result: %d\r\n", ADC_GetResult());
- *  \endcode
- *
- *  @{
- */
-
-#ifndef __ADC_AVRU4U6U7_H__
-#define __ADC_AVRU4U6U7_H__
-
-       /* Includes: */
-               #include "../../../Common/Common.h"
-
-               #include <avr/io.h>
-               #include <stdbool.h>
-
-       /* Enable C linkage for C++ Compilers: */
-               #if defined(__cplusplus)
-                       extern "C" {
-               #endif
-
-       /* Preprocessor Checks: */
-               #if !defined(__INCLUDE_FROM_ADC_H)
-                       #error Do not include this file directly. Include LUFA/Drivers/Peripheral/ADC.h instead.
-               #endif
-
-       /* Private Interface - For use in library only: */
-       #if !defined(__DOXYGEN__)
-               /* Macros: */
-                       #define _ADC_GET_MUX_MASK2(y)           ADC_CHANNEL ## y
-                       #define _ADC_GET_MUX_MASK(y)            _ADC_GET_MUX_MASK2(y)
-       #endif
-       
-       /* Public Interface - May be used in end-application: */
-               /* Macros: */
-                       /** \name ADC Reference Configuration Masks */
-                       //@{
-                       /** Reference mask, for using the voltage present at the AVR's AREF pin for the ADC reference. */
-                       #define ADC_REFERENCE_AREF              0
-
-                       /** Reference mask, for using the voltage present at the AVR's AVCC pin for the ADC reference. */
-                       #define ADC_REFERENCE_AVCC              (1 << REFS0)
-
-                       /** Reference mask, for using the internally generated 2.56V reference voltage as the ADC reference. */
-                       #define ADC_REFERENCE_INT2560MV         ((1 << REFS1) | (1 << REFS0))
-                       //@}
-                       
-                       /** \name ADC Result Adjustment Configuration Masks */
-                       //@{
-                       /** Left-adjusts the 10-bit ADC result, so that the upper 8 bits of the value returned by the
-                        *  \ref ADC_GetResult() macro contain the 8 most significant bits of the result.
-                        */
-                       #define ADC_LEFT_ADJUSTED               (1 << ADLAR)
-
-                       /** Right-adjusts the 10-bit ADC result, so that the lower 8 bits of the value returned by the
-                        *  \ref ADC_GetResult() macro contain the 8 least significant bits of the result.
-                        */
-                       #define ADC_RIGHT_ADJUSTED              (0 << ADLAR)
-                       //@}
-
-                       /** \name ADC Mode Configuration Masks */
-                       //@{
-                       /** Sets the ADC mode to free running, so that conversions take place continuously as fast as the ADC
-                        *  is capable of at the given input clock speed.
-                        */
-                       #define ADC_FREE_RUNNING                (1 << ADATE)
-
-                       /** Sets the ADC mode to single conversion, so that only a single conversion will take place before
-                        *  the ADC returns to idle.
-                        */
-                       #define ADC_SINGLE_CONVERSION           (0 << ADATE)
-                       //@}
-                       
-                       /** \name ADC Prescaler Configuration Masks */
-                       //@{
-                       /** Sets the ADC input clock to prescale by a factor of 2 the AVR's system clock. */
-                       #define ADC_PRESCALE_2                  (1 << ADPS0)
-
-                       /** Sets the ADC input clock to prescale by a factor of 4 the AVR's system clock. */
-                       #define ADC_PRESCALE_4                  (1 << ADPS1)
-
-                       /** Sets the ADC input clock to prescale by a factor of 8 the AVR's system clock. */
-                       #define ADC_PRESCALE_8                  ((1 << ADPS0) | (1 << ADPS1))
-
-                       /** Sets the ADC input clock to prescale by a factor of 16 the AVR's system clock. */
-                       #define ADC_PRESCALE_16                 (1 << ADPS2)
-
-                       /** Sets the ADC input clock to prescale by a factor of 32 the AVR's system clock. */
-                       #define ADC_PRESCALE_32                 ((1 << ADPS2) | (1 << ADPS0))
-
-                       /** Sets the ADC input clock to prescale by a factor of 64 the AVR's system clock. */
-                       #define ADC_PRESCALE_64                 ((1 << ADPS2) | (1 << ADPS1))
-
-                       /** Sets the ADC input clock to prescale by a factor of 128 the AVR's system clock. */
-                       #define ADC_PRESCALE_128                ((1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0))
-                       //@}
-
-                       /** \name ADC MUX Masks */
-                       //@{
-                       /** MUX mask define for the ADC0 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading(). */
-                       #define ADC_CHANNEL0                    (0x00 << MUX0)
-
-                       /** MUX mask define for the ADC1 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading(). */
-                       #define ADC_CHANNEL1                    (0x01 << MUX0)
-
-                       #if !(defined(__AVR_ATmega16U4__)  || defined(__AVR_ATmega32U4__) || defined(__DOXYGEN__))
-                               /** MUX mask define for the ADC2 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading().
-                                *
-                                *  \note Not available on all AVR models.
-                                */
-                               #define ADC_CHANNEL2                (0x02 << MUX0)
-
-                               /** MUX mask define for the ADC3 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading().
-                                *
-                                *  \note Not available on all AVR models.
-                                */
-                               #define ADC_CHANNEL3                (0x03 << MUX0)
-                       #endif
-
-                       /** MUX mask define for the ADC4 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading(). */
-                       #define ADC_CHANNEL4                    (0x04 << MUX0)
-
-                       /** MUX mask define for the ADC5 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading(). */
-                       #define ADC_CHANNEL5                    (0x05 << MUX0)
-
-                       /** MUX mask define for the ADC6 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading(). */
-                       #define ADC_CHANNEL6                    (0x06 << MUX0)
-
-                       /** MUX mask define for the ADC7 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading. */
-                       #define ADC_CHANNEL7                    (0x07 << MUX0)
-
-                       /** MUX mask define for the internal 1.1V bandgap channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading(). */
-                       #define ADC_1100MV_BANDGAP              (0x1E << MUX0)
-
-                       #if (defined(__AVR_ATmega16U4__)  || defined(__AVR_ATmega32U4__) || defined(__DOXYGEN__))
-                               /** MUX mask define for the ADC8 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading().
-                                *
-                                *  \note Not available on all AVR models.
-                                */
-                               #define ADC_CHANNEL8                ((1 << 8) | (0x00 << MUX0))
-
-                               /** MUX mask define for the ADC9 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading().
-                                *
-                                *  \note Not available on all AVR models.
-                                */
-                               #define ADC_CHANNEL9                ((1 << 8) | (0x01 << MUX0))
-
-                               /** MUX mask define for the ADC10 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading().
-                                *
-                                *  \note Not available on all AVR models.
-                                */
-                               #define ADC_CHANNEL10               ((1 << 8) | (0x02 << MUX0))
-
-                               /** MUX mask define for the ADC11 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading().
-                                *
-                                *  \note Not available on all AVR models.
-                                */
-                               #define ADC_CHANNEL11               ((1 << 8) | (0x03 << MUX0))
-
-                               /** MUX mask define for the ADC12 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading().
-                                *
-                                *  \note Not available on all AVR models.
-                                */
-                               #define ADC_CHANNEL12               ((1 << 8) | (0x04 << MUX0))
-
-                               /** MUX mask define for the ADC13 channel of the ADC. See \ref ADC_StartReading() and \ref ADC_GetChannelReading().
-                                *
-                                *  \note Not available on all AVR models.
-                                */
-                               #define ADC_CHANNEL13               ((1 << 8) | (0x05 << MUX0))
-
-                               /** MUX mask define for the internal temperature sensor channel of the ADC. See \ref ADC_StartReading() and
-                                *  \ref ADC_GetChannelReading().
-                                *
-                                *  \note Not available on all AVR models.
-                                */
-                               #define ADC_INT_TEMP_SENS           ((1 << 8) | (0x07 << MUX0))
-                       #endif
-
-                       /** Retrieves the ADC MUX mask for the given ADC channel number.
-                        *
-                        *  \note This macro will only work correctly on channel numbers that are compile-time
-                        *        constants defined by the preprocessor.
-                        *
-                        *  \param[in] Channel  Index of the ADC channel whose MUX mask is to be retrieved.
-                        */
-                       #define ADC_GET_CHANNEL_MASK(Channel)   _ADC_GET_MUX_MASK(Channel)
-                       //@}
-
-               /* Inline Functions: */
-                       /** Configures the given ADC channel, ready for ADC conversions. This function sets the
-                        *  associated port pin as an input and disables the digital portion of the I/O to reduce
-                        *  power consumption.
-                        *
-                        *  \note This must only be called for ADC channels with are connected to a physical port
-                        *        pin of the AVR, denoted by its special alternative function ADCx.
-                        *        \n\n
-                        *
-                        *  \note The channel number must be specified as an integer, and <b>not</b> a \c ADC_CHANNEL* mask.
-                        *
-                        *  \param[in] ChannelIndex  ADC channel number to set up for conversions.
-                        */
-                       static inline void ADC_SetupChannel(const uint8_t ChannelIndex)
-                       {
-                               #if (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB646__) || \
-                                        defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__) || \
-                                        defined(__AVR_ATmega32U6__))
-                               DDRF  &= ~(1 << ChannelIndex);
-                               DIDR0 |=  (1 << ChannelIndex);
-                               #elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))
-                               if (ChannelIndex < 8)
-                               {
-                                       DDRF  &= ~(1 << ChannelIndex);
-                                       DIDR0 |=  (1 << ChannelIndex);
-                               }
-                               else if (ChannelIndex == 8)
-                               {
-                                       DDRD  &= ~(1 << 4);
-                                       DIDR2 |=  (1 << 0);
-                               }
-                               else if (ChannelIndex < 11)
-                               {
-                                       DDRD  &= ~(1 << (ChannelIndex - 3));
-                                       DIDR2 |=  (1 << (ChannelIndex - 8));
-                               }
-                               else
-                               {
-                                       DDRB  &= ~(1 << (ChannelIndex - 7));
-                                       DIDR2 |=  (1 << (ChannelIndex - 8));
-                               }
-                               #endif
-                       }
-
-                       /** De-configures the given ADC channel, re-enabling digital I/O mode instead of analog. This
-                        *  function sets the associated port pin as an input and re-enabled the digital portion of
-                        *  the I/O.
-                        *
-                        *  \note This must only be called for ADC channels with are connected to a physical port
-                        *        pin of the AVR, denoted by its special alternative function ADCx.
-                        *        \n\n
-                        *
-                        *  \note The channel number must be specified as an integer, and <b>not</b> a \c ADC_CHANNEL* mask.
-                        *
-                        *  \param[in] ChannelIndex  ADC channel number to set up for conversions.
-                        */
-                       static inline void ADC_DisableChannel(const uint8_t ChannelIndex)
-                       {
-                               #if (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB646__) || \
-                                        defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__) || \
-                                        defined(__AVR_ATmega32U6__))
-                               DDRF  &= ~(1 << ChannelIndex);
-                               DIDR0 &= ~(1 << ChannelIndex);
-                               #elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))
-                               if (ChannelIndex < 8)
-                               {
-                                       DDRF  &= ~(1 << ChannelIndex);
-                                       DIDR0 &= ~(1 << ChannelIndex);
-                               }
-                               else if (ChannelIndex == 8)
-                               {
-                                       DDRD  &= ~(1 << 4);
-                                       DIDR2 &= ~(1 << 0);
-                               }
-                               else if (ChannelIndex < 11)
-                               {
-                                       DDRD  &= ~(1 << (ChannelIndex - 3));
-                                       DIDR2 &= ~(1 << (ChannelIndex - 8));
-                               }
-                               else
-                               {
-                                       DDRB  &= ~(1 << (ChannelIndex - 7));
-                                       DIDR2 &= ~(1 << (ChannelIndex - 8));
-                               }
-                               #endif
-                       }
-
-                       /** Starts the reading of the given channel, but does not wait until the conversion has completed.
-                        *  Once executed, the conversion status can be determined via the \ref ADC_IsReadingComplete() macro and
-                        *  the result read via the \ref ADC_GetResult() macro.
-                        *
-                        *  If the ADC has been initialized in free running mode, calling this function once will begin the repeated
-                        *  conversions. If the ADC is in single conversion mode (or the channel to convert from is to be changed),
-                        *  this function must be called each time a conversion is to take place.
-                        *
-                        *  \param[in] MUXMask  ADC channel mask, reference mask and adjustment mask.
-                        */
-                       static inline void ADC_StartReading(const uint16_t MUXMask)
-                       {
-                               ADMUX = MUXMask;
-
-                               #if (defined(__AVR_ATmega16U4__)  || defined(__AVR_ATmega32U4__) || defined(__DOXYGEN__))
-                               if (MUXMask & (1 << 8))
-                                 ADCSRB |=  (1 << MUX5);
-                               else
-                                 ADCSRB &= ~(1 << MUX5);
-                               #endif
-
-                               ADCSRA |= (1 << ADSC);
-                       }
-
-                       /** Indicates if the current ADC conversion is completed, or still in progress.
-                        *
-                        *  \return Boolean false if the reading is still taking place, or true if the conversion is
-                        *          complete and ready to be read out with \ref ADC_GetResult().
-                        */
-                       static inline bool ADC_IsReadingComplete(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
-                       static inline bool ADC_IsReadingComplete(void)
-                       {
-                               return ((ADCSRA & (1 << ADIF)) ? true : false);
-                       }
-
-                       /** Retrieves the conversion value of the last completed ADC conversion and clears the reading
-                        *  completion flag.
-                        *
-                        *  \return The result of the last ADC conversion as an unsigned value.
-                        */
-                       static inline uint16_t ADC_GetResult(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
-                       static inline uint16_t ADC_GetResult(void)
-                       {
-                               ADCSRA |= (1 << ADIF);
-                               return ADC;
-                       }
-
-                       /** Performs a complete single reading from channel, including a polling spin-loop to wait for the
-                        *  conversion to complete, and the returning of the converted value.
-                        *
-                        *  \note For free running mode, the automated conversions should be initialized with a single call
-                        *        to \ref ADC_StartReading() to select the channel and begin the automated conversions, and
-                        *        the results read directly from the \ref ADC_GetResult() instead to reduce overhead.
-                        *
-                        *  \param[in] MUXMask  Mask comprising of an ADC channel mask, reference mask and adjustment mask.
-                        */
-                       static inline uint16_t ADC_GetChannelReading(const uint16_t MUXMask) ATTR_WARN_UNUSED_RESULT;
-                       static inline uint16_t ADC_GetChannelReading(const uint16_t MUXMask)
-                       {
-                               ADC_StartReading(MUXMask);
-
-                               while (!(ADC_IsReadingComplete()));
-
-                               return ADC_GetResult();
-                       }
-
-                       /** Initialises the ADC, ready for conversions. This must be called before any other ADC operations.
-                        *  The "mode" parameter should be a mask comprised of a conversion mode (free running or single) and
-                        *  prescaler masks.
-                        *
-                        *  \param[in] Mode  Mask of ADC prescale and mode settings.
-                        */
-                       static inline void ADC_Init(uint8_t Mode) ATTR_ALWAYS_INLINE;
-                       static inline void ADC_Init(uint8_t Mode)
-                       {
-                               ADCSRA = ((1 << ADEN) | Mode);
-                       }
-
-                       /** Turns off the ADC. If this is called, any further ADC operations will require a call to
-                        *  \ref ADC_Init() before the ADC can be used again.
-                        */
-                       static inline void ADC_Disable(void) ATTR_ALWAYS_INLINE;
-                       static inline void ADC_Disable(void)
-                       {
-                               ADCSRA = 0;
-                       }
-
-                       /** Indicates if the ADC is currently enabled.
-                        *
-                        *  \return Boolean \c true if the ADC subsystem is currently enabled, \c false otherwise.
-                        */
-                       static inline bool ADC_GetStatus(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
-                       static inline bool ADC_GetStatus(void)
-                       {
-                               return ((ADCSRA & (1 << ADEN)) ? true : false);
-                       }
-
-       /* Disable C linkage for C++ Compilers: */
-               #if defined(__cplusplus)
-                       }
-               #endif
-
-#endif
-
-/** @} */
-
diff --git a/LUFA/Drivers/Peripheral/AVRU4U6U7/TWI.h b/LUFA/Drivers/Peripheral/AVRU4U6U7/TWI.h
deleted file mode 100644 (file)
index c8293f5..0000000
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2011.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2011  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
-  without fee, provided that the above copyright notice appear in
-  all copies and that both that the copyright notice and this
-  permission notice and warranty disclaimer appear in supporting
-  documentation, and that the name of the author not be used in
-  advertising or publicity pertaining to distribution of the
-  software without specific, written prior permission.
-
-  The author disclaim all warranties with regard to this
-  software, including all implied warranties of merchantability
-  and fitness.  In no event shall the author be liable for any
-  special, indirect or consequential damages or any damages
-  whatsoever resulting from loss of use, data or profits, whether
-  in an action of contract, negligence or other tortious action,
-  arising out of or in connection with the use or performance of
-  this software.
-*/
-
-/** \file
- *  \brief TWI peripheral driver for the U7, U6 and U4 USB AVRs.
- *
- *  Master mode TWI driver for the AT90USB1287, AT90USB1286, AT90USB647, AT90USB646, ATMEGA16U4 and ATMEGA32U4 AVRs.
- *
- *  \note This file should not be included directly. It is automatically included as needed by the TWI driver
- *        dispatch header located in LUFA/Drivers/Peripheral/TWI.h.
- */
-
-/** \ingroup Group_TWI
- *  @defgroup Group_TWI_AVRU4U6U7 Series U4, U6 and U7 Model TWI Driver
- *
- *  Master mode TWI driver for the AT90USB1287, AT90USB1286, AT90USB647, AT90USB646, ATMEGA16U4 and ATMEGA32U4 AVRs.
- *
- *  \note This file should not be included directly. It is automatically included as needed by the TWI driver
- *        dispatch header located in LUFA/Drivers/Peripheral/TWI.h.
- *
- *  \section Sec_ExampleUsage Example Usage
- *  The following snippet is an example of how this module may be used within a typical
- *  application.
- *
- *  <b>Low Level API Example:</b>
- *  \code
- *      // Initialise the TWI driver before first use
- *      TWI_Init();
- *
- *      // Start a write session to device at device address 0xA0, internal address 0xDC with a 10ms timeout
- *      if (TWI_StartTransmission(0xA0 | TWI_ADDRESS_WRITE, 10))
- *      {
- *          TWI_SendByte(0xDC);
- *
- *          TWI_SendByte(0x01);
- *          TWI_SendByte(0x02);
- *          TWI_SendByte(0x03);
- *
- *          // Must stop transmission afterwards to release the bus
- *          TWI_StopTransmission();
- *      }
- *
- *      // Start a read session to device at address 0xA0, internal address 0xDC with a 10ms timeout
- *      if (TWI_StartTransmission(0xA0 | TWI_ADDRESS_WRITE, 10))
- *      {
- *          TWI_SendByte(0xDC);
- *          TWI_StopTransmission();
- *
- *          if (TWI_StartTransmission(0xA0 | TWI_ADDRESS_READ, 10))
- *          {
- *              uint8_t Byte1, Byte2, Byte3;
- *
- *              // Read three bytes, acknowledge after the third byte is received
- *              TWI_ReceiveByte(&Byte1, false);
- *              TWI_ReceiveByte(&Byte2, false);
- *              TWI_ReceiveByte(&Byte3, true);
- *
- *              // Must stop transmission afterwards to release the bus
- *              TWI_StopTransmission();
- *          }
- *      }
- *  \endcode
- * 
- *  <b>High Level API Example:</b>
- *  \code
- *      // Initialise the TWI driver before first use
- *      TWI_Init();
- *
- *      // Start a write session to device at device address 0xA0, internal address 0xDC with a 10ms timeout
- *      uint8_t InternalWriteAddress = 0xDC;
- *      uint8_t WritePacket[3] = {0x01, 0x02, 0x03};
- *
- *      TWI_WritePacket(0xA0, 10, &InternalWriteAddress, sizeof(InternalWriteAddress),
- *                      &WritePacket, sizeof(WritePacket);
- *
- *      // Start a read session to device at address 0xA0, internal address 0xDC with a 10ms timeout
- *      uint8_t InternalReadAddress = 0xDC;
- *      uint8_t ReadPacket[3];
- *
- *      TWI_ReadPacket(0xA0, 10, &InternalReadAddress, sizeof(InternalReadAddress),
- *                     &ReadPacket, sizeof(ReadPacket);
- *  \endcode
- *
- *  @{
- */
-
-#ifndef __TWI_AVRU4U6U7_H__
-#define __TWI_AVRU4U6U7_H__
-
-       /* Includes: */
-               #include "../../../Common/Common.h"
-
-               #include <avr/io.h>
-               #include <stdbool.h>
-               #include <stdio.h>
-               #include <util/twi.h>
-               #include <util/delay.h>
-
-       /* Enable C linkage for C++ Compilers: */
-               #if defined(__cplusplus)
-                       extern "C" {
-               #endif
-
-       /* Preprocessor Checks: */
-               #if !defined(__INCLUDE_FROM_TWI_H)
-                       #error Do not include this file directly. Include LUFA/Drivers/Peripheral/TWI.h instead.
-               #endif
-
-       /* Public Interface - May be used in end-application: */
-               /* Macros: */
-                       /** TWI slave device address mask for a read session. Mask with a slave device base address to obtain
-                        *  the correct TWI bus address for the slave device when reading data from it.
-                        */
-                       #define TWI_ADDRESS_READ         0x00
-
-                       /** TWI slave device address mask for a write session. Mask with a slave device base address to obtain
-                        *  the correct TWI bus address for the slave device when writing data to it.
-                        */
-                       #define TWI_ADDRESS_WRITE        0x01
-
-                       /** Mask to retrieve the base address for a TWI device, which can then be ORed with \ref TWI_ADDRESS_READ
-                        *  or \ref TWI_ADDRESS_WRITE to obtain the device's read and write address respectively.
-                        */
-                       #define TWI_DEVICE_ADDRESS_MASK  0xFE
-                       
-               /* Enums: */
-                       /** Enum for the possible return codes of the TWI transfer start routine and other dependant TWI functions. */
-                       enum TWI_ErrorCodes_t
-                       {
-                               TWI_ERROR_NoError              = 0, /**< Indicates that the command completed sucessfully. */
-                               TWI_ERROR_BusFault             = 1, /**< A TWI bus fault occurred while attempting to capture the bus. */
-                               TWI_ERROR_BusCaptureTimeout    = 2, /**< A timeout occurred whilst waiting for the bus to be ready. */
-                               TWI_ERROR_SlaveResponseTimeout = 3, /**< No ACK received at the nominated slave address within the timeout period. */
-                               TWI_ERROR_SlaveNotReady        = 4, /**< Slave NAKed the TWI bus START condition. */
-                               TWI_ERROR_SlaveNAK             = 5, /**< Slave NAKed whilst attempting to send data to the device. */
-                       };
-       
-               /* Inline Functions: */
-                       /** Initialises the TWI hardware into master mode, ready for data transmission and reception. This must be
-                        *  before any other TWI operations.
-                        */
-                       static inline void TWI_Init(void) ATTR_ALWAYS_INLINE;
-                       static inline void TWI_Init(void)
-                       {
-                               TWCR |=  (1 << TWEN);
-                       }
-
-                       /** Turns off the TWI driver hardware. If this is called, any further TWI operations will require a call to
-                        *  \ref TWI_Init() before the TWI can be used again.
-                        */
-                       static inline void TWI_Disable(void) ATTR_ALWAYS_INLINE;
-                       static inline void TWI_Disable(void)
-                       {
-                               TWCR &= ~(1 << TWEN);
-                       }
-
-                       /** Sends a TWI STOP onto the TWI bus, terminating communication with the currently addressed device. */
-                       static inline void TWI_StopTransmission(void) ATTR_ALWAYS_INLINE;
-                       static inline void TWI_StopTransmission(void)
-                       {
-                               TWCR = ((1 << TWINT) | (1 << TWSTO) | (1 << TWEN));
-                       }
-
-                       /** Sends a byte to the currently addressed device on the TWI bus.
-                        *
-                        *  \param[in] Byte  Byte to send to the currently addressed device
-                        *
-                        *  \return Boolean \c true if the recipient ACKed the byte, \c false otherwise
-                        */
-                       static inline bool TWI_SendByte(const uint8_t Byte)
-                       {
-                               TWDR = Byte;
-                               TWCR = ((1 << TWINT) | (1 << TWEN));
-                               while (!(TWCR & (1 << TWINT)));
-
-                               return ((TWSR & TW_STATUS_MASK) == TW_MT_DATA_ACK);
-                       }
-
-                       /** Receives a byte from the currently addressed device on the TWI bus.
-                        *
-                        *  \param[in] Byte      Location where the read byte is to be stored
-                        *  \param[in] LastByte  Indicates if the byte should be ACKed if false, NAKed if true
-                        *
-                        *  \return Boolean \c true if the byte reception successfully completed, \c false otherwise
-                        */
-                       static inline uint8_t TWI_ReceiveByte(uint8_t* const Byte,
-                                                             const bool LastByte)
-                       {
-                               uint8_t TWCRMask = ((1 << TWINT) | (1 << TWEN));
-
-                               if (!(LastByte))
-                                 TWCRMask |= (1 << TWEA);
-
-                               TWCR = TWCRMask;
-                               while (!(TWCR & (1 << TWINT)));
-                               *Byte = TWDR;
-
-                               return ((TWSR & TW_STATUS_MASK) == TW_MR_DATA_ACK);
-                       }
-
-               /* Function Prototypes: */
-                       /** Begins a master mode TWI bus communication with the given slave device address.
-                        *
-                        *  \param[in] SlaveAddress  Address of the slave TWI device to communicate with
-                        *  \param[in] TimeoutMS     Timeout period within which the slave must respond, in milliseconds
-                        *
-                        *  \return A value from the \ref TWI_ErrorCodes_t enum
-                        */
-                       uint8_t TWI_StartTransmission(const uint8_t SlaveAddress,
-                                                     const uint8_t TimeoutMS);
-
-                       /** High level function to perform a complete packet transfer over the TWI bus to the specified
-                        *  device.
-                        *
-                        *  \param[in] SlaveAddress        Base address of the TWI slave device to communicate with
-                        *  \param[in] TimeoutMS           Timeout for bus capture and slave START ACK, in milliseconds
-                        *  \param[in] InternalAddress     Pointer to a location where the internal slave read start address is stored
-                        *  \param[in] InternalAddressLen  Size of the internal device address, in bytes
-                        *  \param[in] Buffer              Pointer to a buffer where the read packet data is to be stored
-                        *  \param[in] Length              Size of the packet to read, in bytes
-                        */
-                       uint8_t TWI_ReadPacket(const uint8_t SlaveAddress,
-                                              const uint8_t TimeoutMS,
-                                              const uint8_t* InternalAddress,
-                                              uint8_t InternalAddressLen,
-                                              uint8_t* Buffer,
-                                              uint8_t Length);
-
-                       /** High level function to perform a complete packet transfer over the TWI bus from the specified
-                        *  device.
-                        *
-                        *  \param[in] SlaveAddress        Base address of the TWI slave device to communicate with
-                        *  \param[in] TimeoutMS           Timeout for bus capture and slave START ACK, in milliseconds
-                        *  \param[in] InternalAddress     Pointer to a location where the internal slave write start address is stored
-                        *  \param[in] InternalAddressLen  Size of the internal device address, in bytes
-                        *  \param[in] Buffer              Pointer to a buffer where the packet data to send is stored
-                        *  \param[in] Length              Size of the packet to send, in bytes
-                        */
-                       uint8_t TWI_WritePacket(const uint8_t SlaveAddress,
-                                               const uint8_t TimeoutMS,
-                                               const uint8_t* InternalAddress,
-                                               uint8_t InternalAddressLen,
-                                               const uint8_t* Buffer,
-                                               uint8_t Length);
-
-       /* Disable C linkage for C++ Compilers: */
-               #if defined(__cplusplus)
-                       }
-               #endif
-
-#endif
-
-/** @} */
-
index 0b8b17e..9b967e0 100644 (file)
 /** \file
  *  \brief Master include file for the SPI peripheral driver.
  *
- *  Hardware SPI subsystem driver for the supported USB AVRs models.
+ *  This file is the master dispatch header file for the device-specific SPI driver, for microcontrollers
+ *  containing a hardware SPI.
+ *
+ *  User code should include this file, which will in turn include the correct SPI driver header file for the
+ *  currently selected architecture and microcontroller model.
  */
 
 /** \ingroup Group_PeripheralDrivers
- *  @defgroup Group_SPI SPI Driver - LUFA/Drivers/Peripheral/SPI.h
+ *  \defgroup Group_SPI SPI Driver - LUFA/Drivers/Peripheral/SPI.h
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
  *    - None
  *
  *  \section Sec_ModDescription Module Description
- *  Driver for the hardware SPI port available on most AVR models. This module provides
- *  an easy to use driver for the setup of and transfer of data over the AVR's SPI port.
- *
- *  \section Sec_ExampleUsage Example Usage
- *  The following snippet is an example of how this module may be used within a typical
- *  application.
- *
- *  \code
- *      // Initialise the SPI driver before first use
- *      SPI_Init(SPI_SPEED_FCPU_DIV_2 | SPI_ORDER_MSB_FIRST | SPI_SCK_LEAD_FALLING |
- *               SPI_SAMPLE_TRAILING | SPI_MODE_MASTER);
- *
- *      // Send several bytes, ignoring the returned data
- *      SPI_SendByte(0x01);
- *      SPI_SendByte(0x02);
- *      SPI_SendByte(0x03);
+ *  Hardware SPI driver. This module provides an easy to use driver for the setup and transfer of data over
+ *  the selected architecture and microcontroller model's SPI port.
  *
- *      // Receive several bytes, sending a dummy 0x00 byte each time
- *      uint8_t Byte1 = SPI_ReceiveByte();
- *      uint8_t Byte2 = SPI_ReceiveByte();
- *      uint8_t Byte3 = SPI_ReceiveByte();
- *
- *      // Send a byte, and store the received byte from the same transaction
- *      uint8_t ResponseByte = SPI_TransferByte(0xDC);
- *  \endcode
- * 
- *  @{
+ *  \note The exact API for this driver may vary depending on the target used - see
+ *        individual target module documentation for the API specific to your target processor.
  */
 
 #ifndef __SPI_H__
 #define __SPI_H__
 
-       /* Includes: */
-               #include <stdbool.h>
-
-       /* Enable C linkage for C++ Compilers: */
-               #if defined(__cplusplus)
-                       extern "C" {
+       /* Macros: */
+               #if !defined(__DOXYGEN__)
+                       #define __INCLUDE_FROM_SPI_H
                #endif
 
-       /* Private Interface - For use in library only: */
-       #if !defined(__DOXYGEN__)
-               /* Macros: */
-                       #define SPI_USE_DOUBLESPEED            (1 << SPE)
-       #endif
-
-       /* Public Interface - May be used in end-application: */
-               /* Macros: */
-                       /** \name SPI Prescaler Configuration Masks */
-                       //@{
-                       /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 2. */
-                       #define SPI_SPEED_FCPU_DIV_2           SPI_USE_DOUBLESPEED
-
-                       /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 4. */
-                       #define SPI_SPEED_FCPU_DIV_4           0
-
-                       /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 8. */
-                       #define SPI_SPEED_FCPU_DIV_8           (SPI_USE_DOUBLESPEED | (1 << SPR0))
-
-                       /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 16. */
-                       #define SPI_SPEED_FCPU_DIV_16          (1 << SPR0)
-
-                       /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 32. */
-                       #define SPI_SPEED_FCPU_DIV_32          (SPI_USE_DOUBLESPEED | (1 << SPR1))
-
-                       /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 64. */
-                       #define SPI_SPEED_FCPU_DIV_64          (SPI_USE_DOUBLESPEED | (1 << SPR1) | (1 << SPR0))
-
-                       /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 128. */
-                       #define SPI_SPEED_FCPU_DIV_128         ((1 << SPR1) | (1 << SPR0))
-                       //@}
-
-                       /** \name SPI SCK Polarity Configuration Masks */
-                       //@{
-                       /** SPI clock polarity mask for \c SPI_Init(). Indicates that the SCK should lead on the rising edge. */
-                       #define SPI_SCK_LEAD_RISING            (0 << CPOL)
-
-                       /** SPI clock polarity mask for \c SPI_Init(). Indicates that the SCK should lead on the falling edge. */
-                       #define SPI_SCK_LEAD_FALLING           (1 << CPOL)
-                       //@}
-
-                       /** \name SPI Sample Edge Configuration Masks */
-                       //@{
-                       /** SPI data sample mode mask for \c SPI_Init(). Indicates that the data should sampled on the leading edge. */
-                       #define SPI_SAMPLE_LEADING             (0 << CPHA)
-
-                       /** SPI data sample mode mask for \c SPI_Init(). Indicates that the data should be sampled on the trailing edge. */
-                       #define SPI_SAMPLE_TRAILING            (1 << CPHA)
-                       //@}
-                       
-                       /** \name SPI Data Ordering Configuration Masks */
-                       //@{
-                       /** SPI data order mask for \c SPI_Init(). Indicates that data should be shifted out MSB first. */
-                       #define SPI_ORDER_MSB_FIRST            (0 << DORD)
-
-                       /** SPI data order mask for \c SPI_Init(). Indicates that data should be shifted out MSB first. */
-                       #define SPI_ORDER_LSB_FIRST            (1 << DORD)
-                       //@}
-                       
-                       /** \name SPI Mode Configuration Masks */
-                       //@{
-                       /** SPI mode mask for \c SPI_Init(). Indicates that the SPI interface should be initialized into slave mode. */
-                       #define SPI_MODE_SLAVE                 (0 << MSTR)
-
-                       /** SPI mode mask for \c SPI_Init(). Indicates that the SPI interface should be initialized into master mode. */
-                       #define SPI_MODE_MASTER                (1 << MSTR)
-                       //@}
-                       
-               /* Inline Functions: */
-                       /** Initialises the SPI subsystem, ready for transfers. Must be called before calling any other
-                        *  SPI routines.
-                        *
-                        *  \param[in] SPIOptions  SPI Options, a mask consisting of one of each of the \c SPI_SPEED_*,
-                        *                         \c SPI_SCK_*, \c SPI_SAMPLE_*, \c SPI_ORDER_* and \c SPI_MODE_* masks.
-                        */
-                       static inline void SPI_Init(const uint8_t SPIOptions)
-                       {
-                               DDRB  |=  ((1 << 1) | (1 << 2));
-                               DDRB  &= ~((1 << 0) | (1 << 3));
-                               PORTB |=  ((1 << 0) | (1 << 3));
-
-                               SPCR   = ((1 << SPE) | SPIOptions);
-
-                               if (SPIOptions & SPI_USE_DOUBLESPEED)
-                                 SPSR |= (1 << SPI2X);
-                               else
-                                 SPSR &= ~(1 << SPI2X);
-                       }
-
-                       /** Turns off the SPI driver, disabling and returning used hardware to their default configuration. */
-                       static inline void SPI_Disable(void)
-                       {
-                               DDRB  &= ~((1 << 1) | (1 << 2));
-                               PORTB &= ~((1 << 0) | (1 << 3));
-
-                               SPCR   = 0;
-                               SPSR   = 0;
-                       }
-
-                       /** Sends and receives a byte through the SPI interface, blocking until the transfer is complete.
-                        *
-                        *  \param[in] Byte  Byte to send through the SPI interface.
-                        *
-                        *  \return Response byte from the attached SPI device.
-                        */
-                       static inline uint8_t SPI_TransferByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
-                       static inline uint8_t SPI_TransferByte(const uint8_t Byte)
-                       {
-                               SPDR = Byte;
-                               while (!(SPSR & (1 << SPIF)));
-                               return SPDR;
-                       }
-
-                       /** Sends a byte through the SPI interface, blocking until the transfer is complete. The response
-                        *  byte sent to from the attached SPI device is ignored.
-                        *
-                        *  \param[in] Byte  Byte to send through the SPI interface.
-                        */
-                       static inline void SPI_SendByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
-                       static inline void SPI_SendByte(const uint8_t Byte)
-                       {
-                               SPDR = Byte;
-                               while (!(SPSR & (1 << SPIF)));
-                       }
-
-                       /** Sends a dummy byte through the SPI interface, blocking until the transfer is complete. The response
-                        *  byte from the attached SPI device is returned.
-                        *
-                        *  \return The response byte from the attached SPI device.
-                        */
-                       static inline uint8_t SPI_ReceiveByte(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;
-                       static inline uint8_t SPI_ReceiveByte(void)
-                       {
-                               SPDR = 0x00;
-                               while (!(SPSR & (1 << SPIF)));
-                               return SPDR;
-                       }
+       /* Includes: */
+               #include "../../Common/Common.h"
 
-       /* Disable C linkage for C++ Compilers: */
-               #if defined(__cplusplus)
-                       }
+       /* Includes: */
+               #if (ARCH == ARCH_AVR8)
+                       #include "AVR8/SPI.h"
+               #else
+                       #error The SPI peripheral driver is not currently available for your selected architecture.
                #endif
 
 #endif
-
-/** @} */
-
diff --git a/LUFA/Drivers/Peripheral/Serial.c b/LUFA/Drivers/Peripheral/Serial.c
deleted file mode 100644 (file)
index 99af200..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2011.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2011  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
-  without fee, provided that the above copyright notice appear in
-  all copies and that both that the copyright notice and this
-  permission notice and warranty disclaimer appear in supporting
-  documentation, and that the name of the author not be used in
-  advertising or publicity pertaining to distribution of the
-  software without specific, written prior permission.
-
-  The author disclaim all warranties with regard to this
-  software, including all implied warranties of merchantability
-  and fitness.  In no event shall the author be liable for any
-  special, indirect or consequential damages or any damages
-  whatsoever resulting from loss of use, data or profits, whether
-  in an action of contract, negligence or other tortious action,
-  arising out of or in connection with the use or performance of
-  this software.
-*/
-
-#include "Serial.h"
-
-FILE USARTSerialStream;
-
-int Serial_putchar(char DataByte,
-                   FILE *Stream)
-{
-       (void)Stream;
-
-       Serial_SendByte(DataByte);
-       return 0;
-}
-
-int Serial_getchar(FILE *Stream)
-{
-       (void)Stream;
-
-       if (!(Serial_IsCharReceived()))
-         return _FDEV_EOF;
-
-       return Serial_ReceiveByte();
-}
-
-int Serial_getchar_Blocking(FILE *Stream)
-{
-       (void)Stream;
-
-       while (!(Serial_IsCharReceived()));
-       return Serial_ReceiveByte();
-}
-
-void Serial_SendString_P(const char* FlashStringPtr)
-{
-       uint8_t CurrByte;
-
-       while ((CurrByte = pgm_read_byte(FlashStringPtr)) != 0x00)
-       {
-               Serial_SendByte(CurrByte);
-               FlashStringPtr++;
-       }
-}
-
-void Serial_SendString(const char* StringPtr)
-{
-       uint8_t CurrByte;
-
-       while ((CurrByte = *StringPtr) != 0x00)
-       {
-               Serial_SendByte(CurrByte);
-               StringPtr++;
-       }
-}
-
-void Serial_SendData(const uint8_t* Buffer, uint16_t Length)
-{
-       while (Length--)
-         Serial_SendByte(*(Buffer++));
-}
index e7c2fa0..0c6cd86 100644 (file)
 /** \file
  *  \brief Master include file for the USART peripheral driver.
  *
- *  Driver for the USART subsystem on supported USB AVRs.
+ *  This file is the master dispatch header file for the device-specific USART driver, for microcontrollers
+ *  containing a hardware USART.
+ *
+ *  User code should include this file, which will in turn include the correct ADC driver header file for the
+ *  currently selected architecture and microcontroller model.
  */
 
 /** \ingroup Group_PeripheralDrivers
- *  @defgroup Group_Serial Serial USART Driver - LUFA/Drivers/Peripheral/Serial.h
+ *  \defgroup Group_Serial Serial USART Driver - LUFA/Drivers/Peripheral/Serial.h
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
- *    - LUFA/Drivers/Peripheral/Serial.c <i>(Makefile source module name: LUFA_SRC_SERIAL)</i>
+ *    - LUFA/Drivers/Peripheral/$(ARCH)/Serial.c <i>(Makefile source module name: LUFA_SRC_SERIAL)</i>
  *
  *  \section Sec_ModDescription Module Description
- *  Hardware serial USART driver. This module provides an easy to use driver for
- *  the setup of and transfer of data over the AVR's USART port.
- *
- *  \section Sec_ExampleUsage Example Usage
- *  The following snippet is an example of how this module may be used within a typical
- *  application.
- *
- *  \code
- *      // Initialise the serial USART driver before first use, with 9600 baud (and no double-speed mode)
- *      Serial_Init(9600, false);
- *
- *      // Send a string through the USART
- *      Serial_TxString("Test String\r\n");
+ *  Hardware serial USART driver. This module provides an easy to use driver for the setup and transfer
+ *  of data over the selected architecture and microcontroller model's USART port.
  *
- *      // Receive a byte through the USART
- *      uint8_t DataByte = Serial_RxByte();
- *  \endcode
- *
- *  @{
+ *  \note The exact API for this driver may vary depending on the target used - see
+ *        individual target module documentation for the API specific to your target processor.
  */
 
 #ifndef __SERIAL_H__
 #define __SERIAL_H__
 
-       /* Includes: */
-               #include <avr/io.h>
-               #include <avr/pgmspace.h>
-               #include <stdbool.h>
-               #include <stdio.h>
-
-               #include "../../Common/Common.h"
-               #include "../Misc/TerminalCodes.h"
-
-       /* Enable C linkage for C++ Compilers: */
-               #if defined(__cplusplus)
-                       extern "C" {
+       /* Macros: */
+               #if !defined(__DOXYGEN__)
+                       #define __INCLUDE_FROM_SERIAL_H
                #endif
 
-       /* Private Interface - For use in library only: */
-       #if !defined(__DOXYGEN__)
-               /* External Variables: */
-                       extern FILE USARTSerialStream;
-       
-               /* Function Prototypes: */
-                       int Serial_putchar(char DataByte,
-                                          FILE *Stream);
-                       int Serial_getchar(FILE *Stream);
-                       int Serial_getchar_Blocking(FILE *Stream);
-       #endif
-
-       /* Public Interface - May be used in end-application: */
-               /* Macros: */
-                       /** Macro for calculating the baud value from a given baud rate when the U2X (double speed) bit is
-                        *  not set.
-                        */
-                       #define SERIAL_UBBRVAL(baud)    ((((F_CPU / 16) + (baud / 2)) / (baud)) - 1)
-
-                       /** Macro for calculating the baud value from a given baud rate when the U2X (double speed) bit is
-                        *  set.
-                        */
-                       #define SERIAL_2X_UBBRVAL(baud) ((((F_CPU / 8) + (baud / 2)) / (baud)) - 1)
-
-               /* Function Prototypes: */
-                       /** Transmits a given string located in program space (FLASH) through the USART.
-                        *
-                        *  \param[in] FlashStringPtr  Pointer to a string located in program space.
-                        */
-                       void Serial_SendString_P(const char* FlashStringPtr) ATTR_NON_NULL_PTR_ARG(1);
-
-                       /** Transmits a given string located in SRAM memory through the USART.
-                        *
-                        *  \param[in] StringPtr  Pointer to a string located in SRAM space.
-                        */
-                       void Serial_SendString(const char* StringPtr) ATTR_NON_NULL_PTR_ARG(1);
-                       
-                       /** Transmits a given buffer located in SRAM memory through the USART.
-                        *
-                        *  \param[in] Buffer  Pointer to a buffer containing the data to send.
-                        *  \param[in] Length  Length of the data to send, in bytes.
-                        */
-                       void Serial_SendData(const uint8_t* Buffer, uint16_t Length) ATTR_NON_NULL_PTR_ARG(1);
-
-               /* Inline Functions: */
-                       /** Initializes the USART, ready for serial data transmission and reception. This initializes the interface to
-                        *  standard 8-bit, no parity, 1 stop bit settings suitable for most applications.
-                        *
-                        *  \param[in] BaudRate     Serial baud rate, in bits per second.
-                        *  \param[in] DoubleSpeed  Enables double speed mode when set, halving the sample time to double the baud rate.
-                        */
-                       static inline void Serial_Init(const uint32_t BaudRate,
-                                                      const bool DoubleSpeed)
-                       {
-                               UBRR1  = (DoubleSpeed ? SERIAL_2X_UBBRVAL(BaudRate) : SERIAL_UBBRVAL(BaudRate));
-
-                               UCSR1C = ((1 << UCSZ11) | (1 << UCSZ10));
-                               UCSR1A = (DoubleSpeed ? (1 << U2X1) : 0);
-                               UCSR1B = ((1 << TXEN1)  | (1 << RXEN1));
-
-                               DDRD  |= (1 << 3);
-                               PORTD |= (1 << 2);
-                       }
-
-                       /** Turns off the USART driver, disabling and returning used hardware to their default configuration. */
-                       static inline void Serial_Disable(void)
-                       {
-                               UCSR1B = 0;
-                               UCSR1A = 0;
-                               UCSR1C = 0;
-
-                               UBRR1  = 0;
-
-                               DDRD  &= ~(1 << 3);
-                               PORTD &= ~(1 << 2);
-                       }
-
-                       /** Creates a standard character stream from the USART so that it can be used with all the regular functions
-                        *  in the avr-libc \c <stdio.h> library that accept a \c FILE stream as a destination (e.g. \c fprintf). The created
-                        *  stream is bidirectional and can be used for both input and output functions.
-                        *
-                        *  Reading data from this stream is non-blocking, i.e. in most instances, complete strings cannot be read in by a single
-                        *  fetch, as the endpoint will not be ready at some point in the transmission, aborting the transfer. However, this may
-                        *  be used when the read data is processed byte-per-bye (via \c getc()) or when the user application will implement its own
-                        *  line buffering.
-                        *
-                        *  \param[in,out] Stream  Pointer to a FILE structure where the created stream should be placed, if \c NULL stdio
-                        *                         and stdin will be configured to use the USART.
-                        *
-                        *  \pre The USART must first be configured via a call to \ref Serial_Init() before the stream is used.
-                        */
-                       static inline void Serial_CreateStream(FILE* Stream)
-                       {
-                               if (!(Stream))
-                               {
-                                       Stream = &USARTSerialStream;
-                                       stdin  = Stream;
-                                       stdout = Stream;
-                               }
-                       
-                               *Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar, _FDEV_SETUP_RW);
-                       }
-
-                       /** Identical to \ref Serial_CreateStream(), except that reads are blocking until the calling stream function terminates
-                        *  the transfer.
-                        *
-                        *  \param[in,out] Stream  Pointer to a FILE structure where the created stream should be placed, if \c NULL stdio
-                        *                         and stdin will be configured to use the USART.
-                        *
-                        *  \pre The USART must first be configured via a call to \ref Serial_Init() before the stream is used.
-                        */
-                       static inline void Serial_CreateBlockingStream(FILE* Stream)
-                       {
-                               if (!(Stream))
-                               {
-                                       Stream = &USARTSerialStream;
-                                       stdin  = Stream;
-                                       stdout = Stream;
-                               }
-
-                               *Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar_Blocking, _FDEV_SETUP_RW);
-                       }
-
-                       /** Indicates whether a character has been received through the USART.
-                        *
-                        *  \return Boolean \c true if a character has been received, \c false otherwise.
-                        */
-                       static inline bool Serial_IsCharReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
-                       static inline bool Serial_IsCharReceived(void)
-                       {
-                               return ((UCSR1A & (1 << RXC1)) ? true : false);
-                       }
-
-                       /** Transmits a given byte through the USART.
-                        *
-                        *  \param[in] DataByte  Byte to transmit through the USART.
-                        */
-                       static inline void Serial_SendByte(const char DataByte) ATTR_ALWAYS_INLINE;
-                       static inline void Serial_SendByte(const char DataByte)
-                       {
-                               while (!(UCSR1A & (1 << UDRE1)));
-                               UDR1 = DataByte;
-                       }
-
-                       /** Receives the next byte from the USART.
-                        *
-                        *  \return Next byte received from the USART, or a negative value if no byte has been received.
-                        */
-                       static inline int16_t Serial_ReceiveByte(void) ATTR_ALWAYS_INLINE;
-                       static inline int16_t Serial_ReceiveByte(void)
-                       {
-                               if (!(Serial_IsCharReceived()))
-                                 return -1;
-                               
-                               return UDR1;
-                       }
+       /* Includes: */
+               #include "../../Common/Common.h"
 
-       /* Disable C linkage for C++ Compilers: */
-               #if defined(__cplusplus)
-                       }
+       /* Includes: */
+               #if (ARCH == ARCH_AVR8)
+                       #include "AVR8/Serial.h"
+               #else
+                       #error The Serial peripheral driver is not currently available for your selected architecture.
                #endif
 
 #endif
-
-/** @} */
-
diff --git a/LUFA/Drivers/Peripheral/TWI.c b/LUFA/Drivers/Peripheral/TWI.c
deleted file mode 100644 (file)
index 2f4e4ed..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
-     Copyright (C) Dean Camera, 2011.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-#include "TWI.h"
-
-uint8_t TWI_StartTransmission(const uint8_t SlaveAddress,
-                              const uint8_t TimeoutMS)
-{
-       for (;;)
-       {
-               bool     BusCaptured = false;
-               uint16_t TimeoutRemaining;
-
-               TWCR = ((1 << TWINT) | (1 << TWSTA) | (1 << TWEN));
-
-               TimeoutRemaining = (TimeoutMS * 100);
-               while (TimeoutRemaining-- && !(BusCaptured))
-               {
-                       if (TWCR & (1 << TWINT))
-                       {
-                               switch (TWSR & TW_STATUS_MASK)
-                               {
-                                       case TW_START:
-                                       case TW_REP_START:
-                                               BusCaptured = true;
-                                               break;
-                                       case TW_MT_ARB_LOST:
-                                               TWCR = ((1 << TWINT) | (1 << TWSTA) | (1 << TWEN));
-                                               continue;
-                                       default:
-                                               TWCR = (1 << TWEN);
-                                               return TWI_ERROR_BusFault;
-                               }
-                       }
-
-                       _delay_us(10);
-               }
-
-               if (!(TimeoutRemaining))
-               {
-                       TWCR = (1 << TWEN);
-                       return TWI_ERROR_BusCaptureTimeout;
-               }
-
-               TWDR = SlaveAddress;
-               TWCR = ((1 << TWINT) | (1 << TWEN));
-
-               TimeoutRemaining = (TimeoutMS * 100);
-               while (TimeoutRemaining--)
-               {
-                       if (TWCR & (1 << TWINT))
-                         break;
-
-                       _delay_us(10);
-               }
-
-               if (!(TimeoutRemaining))
-                 return TWI_ERROR_SlaveResponseTimeout;
-
-               switch (TWSR & TW_STATUS_MASK)
-               {
-                       case TW_MT_SLA_ACK:
-                       case TW_MR_SLA_ACK:
-                               return TWI_ERROR_NoError;
-                       default:
-                               TWCR = ((1 << TWINT) | (1 << TWSTO) | (1 << TWEN));
-                               return TWI_ERROR_SlaveNotReady;
-               }
-       }
-}
-
-uint8_t TWI_ReadPacket(const uint8_t SlaveAddress,
-                       const uint8_t TimeoutMS,
-                       const uint8_t* InternalAddress,
-                       uint8_t InternalAddressLen,
-                       uint8_t* Buffer,
-                       uint8_t Length)
-{
-       uint8_t ErrorCode;
-       
-       if ((ErrorCode = TWI_WritePacket(SlaveAddress, TimeoutMS, InternalAddress, InternalAddressLen,
-                                        NULL, 0)) != TWI_ERROR_NoError)
-       {
-               return ErrorCode;
-       }
-
-       if ((ErrorCode = TWI_StartTransmission((SlaveAddress & TWI_DEVICE_ADDRESS_MASK) | TWI_ADDRESS_READ,
-                                                                                  TimeoutMS)) == TWI_ERROR_NoError)
-       {
-               while (Length--)
-               {
-                       if (!(TWI_ReceiveByte(Buffer++, (Length == 0))))
-                       {
-                               ErrorCode = TWI_ERROR_SlaveNAK;
-                               break;
-                       }
-               }
-               
-               TWI_StopTransmission();
-       }
-       
-       return ErrorCode;
-}
-
-uint8_t TWI_WritePacket(const uint8_t SlaveAddress,
-                        const uint8_t TimeoutMS,
-                        const uint8_t* InternalAddress,
-                        uint8_t InternalAddressLen,
-                        const uint8_t* Buffer,
-                        uint8_t Length)
-{
-       uint8_t ErrorCode;
-
-       if ((ErrorCode = TWI_StartTransmission((SlaveAddress & TWI_DEVICE_ADDRESS_MASK) | TWI_ADDRESS_WRITE,
-                                              TimeoutMS)) == TWI_ERROR_NoError)
-       {
-               while (InternalAddressLen--)
-               {
-                       if (!(TWI_SendByte(*(InternalAddress++))))
-                       {
-                               ErrorCode = TWI_ERROR_SlaveNAK;
-                               break;
-                       }
-               }
-
-               while (Length--)
-               {
-                       if (!(TWI_SendByte(*(Buffer++))))
-                       {
-                               ErrorCode = TWI_ERROR_SlaveNAK;
-                               break;
-                       }
-               }
-               
-               TWI_StopTransmission();
-       }
-       
-       return ErrorCode;
-}
index 6e68bde..e7eb850 100644 (file)
 /** \file
  *  \brief Master include file for the TWI peripheral driver.
  *
- *  This file is the master dispatch header file for the device-specific ADC driver, for AVRs containing an ADC.
+ *  This file is the master dispatch header file for the device-specific SPI driver, for microcontrollers
+ *  containing a hardware TWI.
  *
- *  User code should include this file, which will in turn include the correct ADC driver header file for the
- *  currently selected AVR model.
+ *  User code should include this file, which will in turn include the correct TWI driver header file for the
+ *  currently selected architecture and microcontroller model.
  */
 
 /** \ingroup Group_PeripheralDrivers
- *  @defgroup Group_TWI TWI Driver - LUFA/Drivers/Peripheral/TWI.h
+ *  \defgroup Group_TWI TWI Driver - LUFA/Drivers/Peripheral/TWI.h
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
- *    - LUFA/Drivers/Peripheral/TWI.c <i>(Makefile source module name: LUFA_SRC_TWI)</i>
- *
+ *    - LUFA/Drivers/Peripheral/$(ARCH)TWI.c <i>(Makefile source module name: LUFA_SRC_TWI)</i>
  *
  *  \section Sec_ModDescription Module Description
- *  Master Mode Hardware TWI driver. This module provides an easy to use driver for the hardware
- *  TWI present on many AVR models, for the transmission and reception of data on a TWI bus.
+ *  Hardware TWI driver. This module provides an easy to use driver for the setup and transfer of data over
+ *  the selected architecture and microcontroller model's TWI bus port.
  *
  *  \note The exact API for this driver may vary depending on the target used - see
  *        individual target module documentation for the API specific to your target processor.
 #define __TWI_H__
 
        /* Macros: */
-       #if !defined(__DOXYGEN__)
-               #define __INCLUDE_FROM_TWI_H
-       #endif
+               #if !defined(__DOXYGEN__)
+                       #define __INCLUDE_FROM_TWI_H
+               #endif
+
+       /* Includes: */
+               #include "../../Common/Common.h"
 
        /* Includes: */
-               #if (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB646__) || \
-                    defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__) || \
-                        defined(__AVR_ATmega16U4__)  || defined(__AVR_ATmega32U4__) || \
-                        defined(__AVR_ATmega32U6__))
-                       #include "AVRU4U6U7/TWI.h"
+               #if (ARCH == ARCH_AVR8)
+                       #include "AVR8/TWI.h"
                #else
-                       #error "TWI is not available for the currently selected AVR model."
+                       #error The TWI peripheral driver is not currently available for your selected architecture.
                #endif
 
 #endif
index 8fc70fe..9a13eb1 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassDrivers
- *  @defgroup Group_USBClassAudio Audio Class Driver
+ *  \defgroup Group_USBClassAudio Audio Class Driver
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
index 7b302fa..a5dc373 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassDrivers
- *  @defgroup Group_USBClassCDC CDC-ACM (Virtual Serial) Class Driver
+ *  \defgroup Group_USBClassCDC CDC-ACM (Virtual Serial) Class Driver
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
index 70a8016..8ddb52d 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassAudio
- *  @defgroup Group_USBClassAudioCommon  Common Class Definitions
+ *  \defgroup Group_USBClassAudioCommon  Common Class Definitions
  *
  *  \section Sec_ModDescription Module Description
  *  Constants, Types and Enum definitions that are common to both Device and Host modes for the USB
index 52107d6..c63c0b5 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassCDC
- *  @defgroup Group_USBClassCDCCommon  Common Class Definitions
+ *  \defgroup Group_USBClassCDCCommon  Common Class Definitions
  *
  *  \section Sec_ModDescription Module Description
  *  Constants, Types and Enum definitions that are common to both Device and Host modes for the USB
index 485b9db..fd35905 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassHID
- *  @defgroup Group_USBClassHIDCommon  Common Class Definitions
+ *  \defgroup Group_USBClassHIDCommon  Common Class Definitions
  *
  *  \section Sec_ModDescription Module Description
  *  Constants, Types and Enum definitions that are common to both Device and Host modes for the USB
index c1689fa..cd32093 100644 (file)
@@ -37,7 +37,7 @@
  */
 
 /** \ingroup Group_USB
- *  @defgroup Group_HIDParser HID Report Parser
+ *  \defgroup Group_HIDParser HID Report Parser
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
index d9de5df..952f393 100644 (file)
@@ -36,7 +36,7 @@
  */
 
 /** \ingroup Group_HIDParser
- *  @defgroup Group_HIDReportItemConst HID Report Descriptor Item Constants
+ *  \defgroup Group_HIDReportItemConst HID Report Descriptor Item Constants
  *
  *  General HID constant definitions for HID Report Descriptor elements.
  *
index 3aea637..8d56f1e 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassMIDI
- *  @defgroup Group_USBClassMIDICommon  Common Class Definitions
+ *  \defgroup Group_USBClassMIDICommon  Common Class Definitions
  *
  *  \section Sec_ModDescription Module Description
  *  Constants, Types and Enum definitions that are common to both Device and Host modes for the USB
index 761141b..f4274ca 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassMS
- *  @defgroup Group_USBClassMSCommon  Common Class Definitions
+ *  \defgroup Group_USBClassMSCommon  Common Class Definitions
  *
  *  \section Sec_ModDescription Module Description
  *  Constants, Types and Enum definitions that are common to both Device and Host modes for the USB
index 7fbdf85..23bc6a4 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassPrinter
- *  @defgroup Group_USBClassPrinterCommon  Common Class Definitions
+ *  \defgroup Group_USBClassPrinterCommon  Common Class Definitions
  *
  *  \section Sec_ModDescription Module Description
  *  Constants, Types and Enum definitions that are common to both Device and Host modes for the USB
index edcf9e7..6b67b97 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassRNDIS
- *  @defgroup Group_USBClassRNDISCommon  Common Class Definitions
+ *  \defgroup Group_USBClassRNDISCommon  Common Class Definitions
  *
  *  \section Sec_ModDescription Module Description
  *  Constants, Types and Enum definitions that are common to both Device and Host modes for the USB
index 132e2aa..06299bf 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassSI
- *  @defgroup Group_USBClassSICommon  Common Class Definitions
+ *  \defgroup Group_USBClassSICommon  Common Class Definitions
  *
  *  \section Sec_ModDescription Module Description
  *  Constants, Types and Enum definitions that are common to both Device and Host modes for the USB
index c674b6d..d82beab 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassAudio
- *  @defgroup Group_USBClassAudioDevice Audio Class Device Mode Driver
+ *  \defgroup Group_USBClassAudioDevice Audio Class Device Mode Driver
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
index 4a7dc67..bf38881 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassCDC
- *  @defgroup Group_USBClassCDCDevice CDC Class Device Mode Driver
+ *  \defgroup Group_USBClassCDCDevice CDC Class Device Mode Driver
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
index 631b191..545badd 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassHID
- *  @defgroup Group_USBClassHIDDevice HID Class Device Mode Driver
+ *  \defgroup Group_USBClassHIDDevice HID Class Device Mode Driver
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
index 3ea45d1..4016d8a 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassMIDI
- *  @defgroup Group_USBClassMIDIDevice MIDI Class Device Mode Driver
+ *  \defgroup Group_USBClassMIDIDevice MIDI Class Device Mode Driver
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
index 6ca0a76..aceeb62 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassMS
- *  @defgroup Group_USBClassMSDevice Mass Storage Class Device Mode Driver
+ *  \defgroup Group_USBClassMSDevice Mass Storage Class Device Mode Driver
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
index 40d15ef..cdc6fba 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassRNDIS
- *  @defgroup Group_USBClassRNDISDevice RNDIS Class Device Mode Driver
+ *  \defgroup Group_USBClassRNDISDevice RNDIS Class Device Mode Driver
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
index 39cef95..4eafa75 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassDrivers
- *  @defgroup Group_USBClassHID HID Class Driver
+ *  \defgroup Group_USBClassHID HID Class Driver
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
index 5f59e0c..bba94fe 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassCDC
- *  @defgroup Group_USBClassCDCHost CDC Class Host Mode Driver
+ *  \defgroup Group_USBClassCDCHost CDC Class Host Mode Driver
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
index 9057845..bd67f8f 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassHID
- *  @defgroup Group_USBClassHIDHost HID Class Host Mode Driver
+ *  \defgroup Group_USBClassHIDHost HID Class Host Mode Driver
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
index 13a1e77..fc31d40 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassMIDI
- *  @defgroup Group_USBClassMIDIHost MIDI Class Host Mode Driver
+ *  \defgroup Group_USBClassMIDIHost MIDI Class Host Mode Driver
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
index 93034c3..cd2ea45 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassMS
- *  @defgroup Group_USBClassMassStorageHost Mass Storage Class Host Mode Driver
+ *  \defgroup Group_USBClassMassStorageHost Mass Storage Class Host Mode Driver
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
index 91c1319..096cc59 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassPrinter
- *  @defgroup Group_USBClassPrinterHost Printer Class Host Mode Driver
+ *  \defgroup Group_USBClassPrinterHost Printer Class Host Mode Driver
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
index 71ae317..68aa347 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassRNDIS
- *  @defgroup Group_USBClassRNDISHost RNDIS Class Host Mode Driver
+ *  \defgroup Group_USBClassRNDISHost RNDIS Class Host Mode Driver
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
index 24deb5a..51dc1e9 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassSI
- *  @defgroup Group_USBClassStillImageHost Still Image Class Host Mode Driver
+ *  \defgroup Group_USBClassStillImageHost Still Image Class Host Mode Driver
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
index 5b29189..431df22 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassDrivers
- *  @defgroup Group_USBClassMIDI MIDI Class Driver
+ *  \defgroup Group_USBClassMIDI MIDI Class Driver
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
index 7dd96c9..8267c16 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassDrivers
- *  @defgroup Group_USBClassMS Mass Storage Class Driver
+ *  \defgroup Group_USBClassMS Mass Storage Class Driver
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
index e53fc71..e624128 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassDrivers
- *  @defgroup Group_USBClassPrinter Printer Class Driver
+ *  \defgroup Group_USBClassPrinter Printer Class Driver
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
index ebcadfd..5725bea 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassDrivers
- *  @defgroup Group_USBClassRNDIS RNDIS (Networking) Class Driver
+ *  \defgroup Group_USBClassRNDIS RNDIS (Networking) Class Driver
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
index 35936a6..dadb98d 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USBClassDrivers
- *  @defgroup Group_USBClassSI Still Image Class Driver
+ *  \defgroup Group_USBClassSI Still Image Class Driver
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
index 3ef95a4..d51eb3d 100644 (file)
@@ -40,7 +40,7 @@
  */
 
 /** \ingroup Group_Descriptors
- *  @defgroup Group_ConfigDescriptorParser Configuration Descriptor Parser
+ *  \defgroup Group_ConfigDescriptorParser Configuration Descriptor Parser
  *
  *  Functions, macros, variables, enums and types related to the parsing of Configuration Descriptors.
  *
index a6e7200..726378b 100644 (file)
@@ -39,7 +39,7 @@
  */\r
 \r
 /** \ingroup Group_EndpointRW  \r
- *  @defgroup Group_EndpointStreamRW Read/Write of Multi-Byte Streams\r
+ *  \defgroup Group_EndpointStreamRW Read/Write of Multi-Byte Streams\r
  *\r
  *  Functions, macros, variables, enums and types related to data reading and writing of data streams from\r
  *  and to endpoints.\r
index 53e31f6..368774b 100644 (file)
@@ -48,7 +48,7 @@
  */
 
 /** \ingroup Group_USB
- *  @defgroup Group_Events USB Events
+ *  \defgroup Group_Events USB Events
  *
  *  This module contains macros and functions relating to the management of library events, which are small
  *  pieces of code similar to ISRs which are run when a given condition is met. Each event can be fired from
index b2d392a..38ab09f 100644 (file)
@@ -39,7 +39,7 @@
  */\r
 \r
 /** \ingroup Group_PipeRW  \r
- *  @defgroup Group_PipeStreamRW Read/Write of Multi-Byte Streams\r
+ *  \defgroup Group_PipeStreamRW Read/Write of Multi-Byte Streams\r
  *\r
  *  Functions, macros, variables, enums and types related to data reading and writing of data streams from\r
  *  and to pipes.\r
index a6c5231..7b8f4d7 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USB
- *  @defgroup Group_Descriptors USB Descriptors
+ *  \defgroup Group_Descriptors USB Descriptors
  *
  *  Standard USB device descriptor defines and retrieval routines, for USB devices. This module contains
  *  structures and macros for the easy creation of standard USB descriptors in USB device projects.
index f8e951e..c62aa50 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USB
- *  @defgroup Group_StdRequest Standard USB Requests
+ *  \defgroup Group_StdRequest Standard USB Requests
  *
  *  This module contains definitions for the various control request parameters, so that the request
  *  details (such as data direction, request recipient, etc.) can be extracted via masking.
index 91b2697..58f9927 100644 (file)
@@ -40,7 +40,7 @@
  */
 
 /** \ingroup Group_USB
- *  @defgroup Group_USBMode USB Mode Tokens
+ *  \defgroup Group_USBMode USB Mode Tokens
  *
  *  After the inclusion of the master USB driver header, one or more of the following
  *  tokens may be defined, to allow the user code to conditionally enable or disable
index 55f4346..ae3df41 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USB
- *  @defgroup Group_Device Device Management
+ *  \defgroup Group_Device Device Management
  *
  *  USB Device mode related macros and enums. This module contains macros and enums which are used when
  *  the USB controller is initialized in device mode.
index 9ce1380..455577c 100644 (file)
  */
 
 /** \ingroup Group_EndpointManagement
- *  @defgroup Group_EndpointRW Endpoint Data Reading and Writing
+ *  \defgroup Group_EndpointRW Endpoint Data Reading and Writing
  *
  *  Functions, macros, variables, enums and types related to data reading and writing from and to endpoints.
  */
 
 /** \ingroup Group_EndpointRW
- *  @defgroup Group_EndpointPrimitiveRW Read/Write of Primitive Data Types
+ *  \defgroup Group_EndpointPrimitiveRW Read/Write of Primitive Data Types
  *
  *  Functions, macros, variables, enums and types related to data reading and writing of primitive data types
  *  from and to endpoints.
  */
 
 /** \ingroup Group_EndpointManagement
- *  @defgroup Group_EndpointPacketManagement Endpoint Packet Management
+ *  \defgroup Group_EndpointPacketManagement Endpoint Packet Management
  *
  *  Functions, macros, variables, enums and types related to packet management of endpoints.
  */
 
 /** \ingroup Group_USB
- *  @defgroup Group_EndpointManagement Endpoint Management
+ *  \defgroup Group_EndpointManagement Endpoint Management
  *
  *  Functions, macros and enums related to endpoint management when in USB Device mode. This
  *  module contains the endpoint management macros, as well as endpoint interrupt and data
index 92a4cb9..651daf2 100644 (file)
@@ -38,7 +38,7 @@
  */
 
 /** \ingroup Group_USB
- *  @defgroup Group_Host Host Management
+ *  \defgroup Group_Host Host Management
  *
  *  USB Host mode related macros and enums. This module contains macros and enums which are used when
  *  the USB controller is initialized in host mode.
index 5e096ca..2cb751d 100644 (file)
@@ -39,7 +39,7 @@
  */
 
 /** \ingroup Group_USB
- *  @defgroup Group_OTG USB On The Go (OTG) Management
+ *  \defgroup Group_OTG USB On The Go (OTG) Management
  *
  *  This module contains macros for embedded USB hosts with dual role On The Go capabilities, for managing role
  *  exchange. OTG is a way for two USB dual role devices to talk to one another directly without fixed device/host
index 75cdf7a..34a64a7 100644 (file)
  */
 
 /** \ingroup Group_PipeManagement
- *  @defgroup Group_PipeRW Pipe Data Reading and Writing
+ *  \defgroup Group_PipeRW Pipe Data Reading and Writing
  *
  *  Functions, macros, variables, enums and types related to data reading and writing from and to pipes.
  */
 
 /** \ingroup Group_PipeRW
- *  @defgroup Group_PipePrimitiveRW Read/Write of Primitive Data Types
+ *  \defgroup Group_PipePrimitiveRW Read/Write of Primitive Data Types
  *
  *  Functions, macros, variables, enums and types related to data reading and writing of primitive data types
  *  from and to pipes.
  */
 
 /** \ingroup Group_PipeManagement
- *  @defgroup Group_PipePacketManagement Pipe Packet Management
+ *  \defgroup Group_PipePacketManagement Pipe Packet Management
  *
  *  Functions, macros, variables, enums and types related to packet management of pipes.
  */
 
 /** \ingroup Group_PipeManagement
- *  @defgroup Group_PipeControlReq Pipe Control Request Management
+ *  \defgroup Group_PipeControlReq Pipe Control Request Management
  *
  *  Module for host mode request processing. This module allows for the transmission of standard, class and
  *  vendor control requests to the default control endpoint of an attached device while in host mode.
@@ -67,7 +67,7 @@
  */
 
 /** \ingroup Group_USB
- *  @defgroup Group_PipeManagement Pipe Management
+ *  \defgroup Group_PipeManagement Pipe Management
  *
  *  This module contains functions, macros and enums related to pipe management when in USB Host mode. This
  *  module contains the pipe management macros, as well as pipe interrupt and data send/receive functions
index f35c52d..b85539d 100644 (file)
@@ -39,7 +39,7 @@
  */
 
 /** \ingroup Group_USB
- *  @defgroup Group_USBManagement USB Interface Management
+ *  \defgroup Group_USBManagement USB Interface Management
  *
  *  Functions, macros, variables, enums and types related to the setup and management of the USB interface.
  *
index ff72a08..70dc97e 100644 (file)
@@ -37,7 +37,7 @@
  *  including any headers in the USB/LowLevel/ or USB/HighLevel/ subdirectories.
  */
 
-/** @defgroup Group_USB USB Core - LUFA/Drivers/USB/USB.h
+/** \defgroup Group_USB USB Core - LUFA/Drivers/USB/USB.h
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
@@ -71,7 +71,7 @@
  *  of USB management functions found \ref Group_USBManagement.
  */
 
-/** @defgroup Group_USBClassDrivers USB Class Drivers
+/** \defgroup Group_USBClassDrivers USB Class Drivers
  *
  *  Drivers for both host and device mode of the standard USB classes, for rapid application development.
  *  Class drivers give a framework which sits on top of the low level library API, allowing for standard
index 915b83a..26700f6 100644 (file)
@@ -22,6 +22,7 @@
   *   - Added new MAX() and MIN() convenience macros
   *   - Added new Serial_SendData() function to the Serial driver
   *   - Added board driver support for the Sparkfun ATMEGA8U2 breakout board
+  *   - Started internal restructuring for eventual multiple architecture ports
   *  - Library Applications:
   *   - Added ability to write protect Mass Storage disk write operations from the host OS
   *   - Added new MIDIToneGenerator project
index 36ba26d..a02d407 100644 (file)
  *  This folder contains drivers for several of the AVR internal peripherals such as the USART, compatible with
  *  all USB AVR models.
  *
- *  \dir LUFA/Drivers/Peripheral/AVRU4U6U7
- *  \brief AT90USBXXX6, AT90USBXXX7 and ATMEGAXXU4 AVR model peripheral driver files.
+ *  \dir LUFA/Drivers/Peripheral/AVR8
+ *  \brief AVR8 AVR microcontroller model specific peripheral driver files.
  *
  *  This folder contains drivers for several of the AVR internal peripherals such as the USART, compatible only with
- *  the AT90USBXXX6, AT90USBXXX7 and ATMEGAXXU4 USB AVR models, such as the AT90USB1287. Its contents should <b>not</b> be
- *  included by the user application - the dispatch header file located in the parent directory should be used
- *  instead.
+ *  the 8-bit AVR microcontroller models, such as the AT90USB1287. Its contents should <b>not</b> be included by the
+ *  user application - the dispatch header file located in the parent directory should be used instead.
  *
  *  \dir LUFA/Drivers/USB
  *  \brief USB controller peripheral driver files.
index 857e9dd..4e71d4d 100644 (file)
@@ -31,9 +31,9 @@
 #include "Scheduler.h"
 
 volatile SchedulerDelayCounter_t Scheduler_TickCounter;
-volatile uint8_t                 Scheduler_TotalTasks;
+volatile uint_least8_t           Scheduler_TotalTasks;
 
-bool Scheduler_HasDelayElapsed(const uint16_t Delay,
+bool Scheduler_HasDelayElapsed(const uint_least16_t Delay,
                                SchedulerDelayCounter_t* const DelayCounter)
 {
        SchedulerDelayCounter_t CurrentTickValue_LCL;
@@ -83,7 +83,7 @@ void Scheduler_SetTaskMode(const TaskPtr_t Task,
        }
 }
 
-void Scheduler_SetGroupTaskMode(const uint8_t GroupID,
+void Scheduler_SetGroupTaskMode(const uint_least8_t GroupID,
                                 const bool TaskStatus)
 {
        TaskEntry_t* CurrTask = &Scheduler_TaskList[0];
index 72b8773..35f165f 100644 (file)
@@ -37,7 +37,7 @@
  *  \deprecated This module is deprecated and will be removed in a future library release.
  */
 
-/** @defgroup Group_Scheduler Simple Task Scheduler - LUFA/Scheduler/Scheduler.h
+/** \defgroup Group_Scheduler Simple Task Scheduler - LUFA/Scheduler/Scheduler.h
  *
  *  \deprecated This module is deprecated and will be removed in a future library release.
  *
 #define __SCHEDULER_H__
 
        /* Includes: */
-               #include <stdint.h>
-               #include <stdbool.h>
-
-               #include <util/atomic.h>
-
                #include "../Common/Common.h"
 
        /* Enable C linkage for C++ Compilers: */
                        /** Type define for a variable which can hold a tick delay value for the scheduler up to the maximum delay
                         *  possible.
                         */
-                       typedef uint16_t SchedulerDelayCounter_t;
+                       typedef uint_least16_t SchedulerDelayCounter_t;
 
                        /** \brief Scheduler Task List Entry Structure.
                         *
                         */
                        typedef struct
                        {
-                               TaskPtr_t Task;       /**< Pointer to the task to execute. */
-                               bool      TaskStatus; /**< Status of the task (either TASK_RUN or TASK_STOP). */
-                               uint8_t   GroupID;    /**< Group ID of the task so that its status can be changed as a group. */
+                               TaskPtr_t     Task;       /**< Pointer to the task to execute. */
+                               bool          TaskStatus; /**< Status of the task (either TASK_RUN or TASK_STOP). */
+                               uint_least8_t GroupID;    /**< Group ID of the task so that its status can be changed as a group. */
                        } TaskEntry_t;
 
                /* Global Variables: */
                         *  \ref TaskEntry_t and can be manipulated as desired, although it is preferred that the proper Scheduler
                         *  functions should be used instead of direct manipulation.
                         */
-                       exter TaskEntry_t Scheduler_TaskList[];
+                       extern TaskEntry_t Scheduler_TaskList[];
 
                        /** Contains the total number of tasks in the task list, irrespective of if the task's status is set to
                         *  \ref TASK_RUN or \ref TASK_STOP.
                         *
                         *  \note This value should be treated as read-only, and never altered in user-code.
                         */
-                       extern volatile uint8_t Scheduler_TotalTasks;
+                       extern volatile uint_least8_t Scheduler_TotalTasks;
 
                        /**  Contains the current scheduler tick count, for use with the delay functions. If the delay functions
                         *   are used in the user code, this should be incremented each tick period so that the delays can be
                         *      }
                         *  \endcode
                         */
-                       bool Scheduler_HasDelayElapsed(const uint16_t Delay,
+                       bool Scheduler_HasDelayElapsed(const uint_least16_t Delay,
                                                       SchedulerDelayCounter_t* const DelayCounter)
                                                       ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(2);
 
                         *  \param[in] GroupID     Value of the task group ID whose status is to be changed.
                         *  \param[in] TaskStatus  New task status for tasks in the specified group (\ref TASK_RUN or \ref TASK_STOP).
                         */
-                       void Scheduler_SetGroupTaskMode(const uint8_t GroupID,
+                       void Scheduler_SetGroupTaskMode(const uint_least8_t GroupID,
                                                        const bool TaskStatus);
 
        /* Private Interface - For use in library only: */
        #if !defined(__DOXYGEN__)
                /* Macros: */
                        #define TOTAL_TASKS                       (sizeof(Scheduler_TaskList) / sizeof(TaskEntry_t))
-                       #define MAX_DELAYCTR_COUNT                0xFFFF
+                       #define MAX_DELAYCTR_COUNT                UINT_LEAST16_MAX
 
                /* Inline Functions: */
-                       static inline void Scheduler_InitScheduler(const uint8_t TotalTasks) ATTR_ALWAYS_INLINE;
-                       static inline void Scheduler_InitScheduler(const uint8_t TotalTasks)
+                       static inline void Scheduler_InitScheduler(const uint_least8_t TotalTasks) ATTR_ALWAYS_INLINE;
+                       static inline void Scheduler_InitScheduler(const uint_least8_t TotalTasks)
                        {
                                Scheduler_TotalTasks = TotalTasks;
                        }
 
-                       static inline void Scheduler_GoSchedule(const uint8_t TotalTasks) ATTR_NO_RETURN ATTR_ALWAYS_INLINE ATTR_DEPRECATED;
-                       static inline void Scheduler_GoSchedule(const uint8_t TotalTasks)
+                       static inline void Scheduler_GoSchedule(const uint_least8_t TotalTasks)
+                                                               ATTR_NO_RETURN ATTR_ALWAYS_INLINE ATTR_DEPRECATED;
+                       static inline void Scheduler_GoSchedule(const uint_least8_t TotalTasks)
                        {
                                Scheduler_InitScheduler(TotalTasks);
 
index d1710ef..ccc2afd 100644 (file)
@@ -16,6 +16,11 @@ else
    LUFA_ROOT_PATH = $(LUFA_PATH)/LUFA
 endif
 
+# Check to see if the chip architecture has not been defined in the user makefile, set a default architecture if not
+ifeq ($(origin ARCH), undefined)
+   ARCH = AVR8
+endif
+
 # Define module source file lists
 LUFA_SRC_USB          = $(LUFA_ROOT_PATH)/Drivers/USB/LowLevel/Device.c             \
                         $(LUFA_ROOT_PATH)/Drivers/USB/LowLevel/Endpoint.c           \
@@ -45,8 +50,8 @@ LUFA_SRC_USBCLASS     = $(LUFA_ROOT_PATH)/Drivers/USB/Class/Device/Audio.c
                         $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/RNDIS.c            \
                         $(LUFA_ROOT_PATH)/Drivers/USB/Class/Host/StillImage.c
 LUFA_SRC_TEMPERATURE  = $(LUFA_ROOT_PATH)/Drivers/Board/Temperature.c
-LUFA_SRC_SERIAL       = $(LUFA_ROOT_PATH)/Drivers/Peripheral/Serial.c
-LUFA_SRC_TWI          = $(LUFA_ROOT_PATH)/Drivers/Peripheral/TWI.c
+LUFA_SRC_SERIAL       = $(LUFA_ROOT_PATH)/Drivers/Peripheral/$(ARCH)/Serial.c
+LUFA_SRC_TWI          = $(LUFA_ROOT_PATH)/Drivers/Peripheral/$(ARCH)/TWI.c
 LUFA_SRC_SCHEDULER    = $(LUFA_ROOT_PATH)/Scheduler/Scheduler.c
 
 
index 944054e..ecfa0a1 100644 (file)
 MCU = at90usb162
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -204,7 +208,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 1d30680..9b19f0d 100644 (file)
 MCU = atmega32u2
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -190,7 +194,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 6656d92..8d6fced 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -190,7 +194,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 017a3fa..a29ff54 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -181,7 +185,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index 7aee785..6e1a2a3 100644 (file)
 MCU = at90usb1287\r
 \r
 \r
+# Target architecture (see library "Board Types" documentation).\r
+ARCH = AVR8\r
+\r
+\r
 # Target board (see library "Board Types" documentation, NONE for projects not requiring\r
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called\r
 # "Board" inside the application directory.\r
@@ -181,7 +185,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources\r
 CDEFS  = -DF_CPU=$(F_CPU)UL\r
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL\r
-CDEFS += -DBOARD=BOARD_$(BOARD)\r
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)\r
 CDEFS += $(LUFA_OPTS)\r
 \r
 \r
index 597736d..9e6674f 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -193,7 +197,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index d7b35c9..e3e550e 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -177,7 +181,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index baad4a7..d548ff4 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -181,7 +185,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index f6d4362..6664816 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -190,7 +194,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index f495af6..01141fd 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -182,7 +186,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index acc371a..2091f8d 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -214,7 +218,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)
 
 
index ee466dd..437d70a 100644 (file)
 MCU = at90usb1287
 
 
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+
 # Target board (see library "Board Types" documentation, NONE for projects not requiring
 # LUFA board drivers). If USER is selected, put custom board drivers in a directory called
 # "Board" inside the application directory.
@@ -206,7 +210,7 @@ CSTANDARD = -std=c99
 # Place -D or -U options here for C sources
 CDEFS  = -DF_CPU=$(F_CPU)UL
 CDEFS += -DF_CLOCK=$(F_CLOCK)UL
-CDEFS += -DBOARD=BOARD_$(BOARD)
+CDEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
 CDEFS += $(LUFA_OPTS)