Revert changes made for the partial port to the AVR32 architecture.
authorDean Camera <dean@fourwalledcubicle.com>
Wed, 24 Feb 2010 06:58:23 +0000 (06:58 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Wed, 24 Feb 2010 06:58:23 +0000 (06:58 +0000)
83 files changed:
LUFA.pnproj
LUFA/Common/Atomic.h [deleted file]
LUFA/Common/BoardTypes.h
LUFA/Common/Common.h
LUFA/DriverStubs/Buttons.h
LUFA/DriverStubs/Joystick.h
LUFA/DriverStubs/LEDs.h
LUFA/Drivers/Board/ATAVRUSBRF01/Buttons.h
LUFA/Drivers/Board/ATAVRUSBRF01/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/Dataflash.h
LUFA/Drivers/Board/EVK1101/Buttons.h [deleted file]
LUFA/Drivers/Board/EVK1101/Joystick.h [deleted file]
LUFA/Drivers/Board/EVK1101/LEDs.h [deleted file]
LUFA/Drivers/Board/EVK527/Buttons.h
LUFA/Drivers/Board/EVK527/Joystick.h
LUFA/Drivers/Board/EVK527/LEDs.h
LUFA/Drivers/Board/Joystick.h
LUFA/Drivers/Board/LEDs.h
LUFA/Drivers/Board/RZUSBSTICK/LEDs.h
LUFA/Drivers/Board/STK525/Buttons.h
LUFA/Drivers/Board/STK525/Joystick.h
LUFA/Drivers/Board/STK525/LEDs.h
LUFA/Drivers/Board/STK526/Buttons.h
LUFA/Drivers/Board/STK526/Joystick.h
LUFA/Drivers/Board/STK526/LEDs.h
LUFA/Drivers/Board/Temperature.c
LUFA/Drivers/Board/Temperature.h
LUFA/Drivers/Board/USBKEY/Buttons.h
LUFA/Drivers/Board/USBKEY/Joystick.h
LUFA/Drivers/Board/USBKEY/LEDs.h
LUFA/Drivers/Board/XPLAIN/LEDs.h
LUFA/Drivers/Peripheral/ADC.h
LUFA/Drivers/Peripheral/AVR32/SPI.h [deleted file]
LUFA/Drivers/Peripheral/AVR8/ADC.h [deleted file]
LUFA/Drivers/Peripheral/AVR8/SPI.h [deleted file]
LUFA/Drivers/Peripheral/AVR8/Serial.h [deleted file]
LUFA/Drivers/Peripheral/AVR8/TWI.h [deleted file]
LUFA/Drivers/Peripheral/AVRU4U6U7/ADC.h [new file with mode: 0644]
LUFA/Drivers/Peripheral/AVRU4U6U7/SPI.h [new file with mode: 0644]
LUFA/Drivers/Peripheral/AVRU4U6U7/Serial.h [new file with mode: 0644]
LUFA/Drivers/Peripheral/AVRU4U6U7/TWI.h [new file with mode: 0644]
LUFA/Drivers/Peripheral/SPI.h
LUFA/Drivers/Peripheral/Serial.h
LUFA/Drivers/Peripheral/SerialStream.h
LUFA/Drivers/Peripheral/TWI.h
LUFA/Drivers/USB/Class/Device/RNDIS.c
LUFA/Drivers/USB/HighLevel/ConfigDescriptor.h
LUFA/Drivers/USB/HighLevel/Events.h
LUFA/Drivers/USB/HighLevel/StdDescriptors.h
LUFA/Drivers/USB/HighLevel/StdRequestType.h
LUFA/Drivers/USB/HighLevel/StreamCallbacks.h
LUFA/Drivers/USB/HighLevel/USBInterrupt.c
LUFA/Drivers/USB/HighLevel/USBInterrupt.h
LUFA/Drivers/USB/HighLevel/USBMode.h
LUFA/Drivers/USB/HighLevel/USBTask.h
LUFA/Drivers/USB/LowLevel/DevChapter9.c
LUFA/Drivers/USB/LowLevel/DevChapter9.h
LUFA/Drivers/USB/LowLevel/Device.h
LUFA/Drivers/USB/LowLevel/Endpoint.c
LUFA/Drivers/USB/LowLevel/Endpoint.h
LUFA/Drivers/USB/LowLevel/Host.h
LUFA/Drivers/USB/LowLevel/HostChapter9.h
LUFA/Drivers/USB/LowLevel/LowLevel.c
LUFA/Drivers/USB/LowLevel/LowLevel.h
LUFA/Drivers/USB/LowLevel/OTG.h
LUFA/Drivers/USB/LowLevel/Pipe.c
LUFA/Drivers/USB/LowLevel/Pipe.h
LUFA/Drivers/USB/USB.h
LUFA/ManPages/ChangeLog.txt
LUFA/ManPages/CompileTimeTokens.txt
LUFA/ManPages/DeviceSupport.txt
LUFA/ManPages/DirectorySummaries.txt
LUFA/ManPages/FutureChanges.txt
LUFA/ManPages/MainPage.txt
LUFA/ManPages/MigrationInformation.txt
LUFA/Scheduler/Scheduler.h
Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.c
Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c
Projects/AVRISP-MKII/makefile

index 14def31..7bc65cd 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></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></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></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></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></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></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></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></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><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\SCSI_Codes.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></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></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></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></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></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></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></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></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></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></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></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></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></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><File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI_Codes.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></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></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></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\RNDISConstants.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></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></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><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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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><File path="Demos\Host\LowLevel\MassStorageHost\Lib\SCSI_Codes.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></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></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></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></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></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><File path="Demos\Host\LowLevel\RNDISEthernetHost\Lib\RNDISConstants.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></Folder><Folder name="StillImageHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\StillImageHost\Lib\PIMACodes.h"></File><File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.c"></File><File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.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></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></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></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></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></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\FunctionAttributes.h"></File><File path="LUFA\Common\BoardTypes.h"></File><File path="LUFA\Common\Atomic.h"></File></Folder><Folder name="Drivers"><Folder name="USB"><Folder name="LowLevel"><Folder name="Template"><File path="LUFA\Drivers\USB\LowLevel\Template\Template_Endpoint_RW.c"></File><File path="LUFA\Drivers\USB\LowLevel\Template\Template_Endpoint_Control_R.c"></File><File path="LUFA\Drivers\USB\LowLevel\Template\Template_Endpoint_Control_W.c"></File><File path="LUFA\Drivers\USB\LowLevel\Template\Template_Pipe_RW.c"></File></Folder><File path="LUFA\Drivers\USB\LowLevel\HostChapter9.h"></File><File path="LUFA\Drivers\USB\LowLevel\LowLevel.c"></File><File path="LUFA\Drivers\USB\LowLevel\LowLevel.h"></File><File path="LUFA\Drivers\USB\LowLevel\Pipe.c"></File><File path="LUFA\Drivers\USB\LowLevel\Pipe.h"></File><File path="LUFA\Drivers\USB\LowLevel\DevChapter9.c"></File><File path="LUFA\Drivers\USB\LowLevel\DevChapter9.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\HostChapter9.c"></File><File path="LUFA\Drivers\USB\LowLevel\OTG.h"></File></Folder><Folder name="HighLevel"><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\USBInterrupt.c"></File><File path="LUFA\Drivers\USB\HighLevel\USBInterrupt.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\StreamCallbacks.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></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\HIDParser.c"></File><File path="LUFA\Drivers\USB\Class\Host\HIDParser.h"></File><File path="LUFA\Drivers\USB\Class\Host\HIDReportData.h"></File><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\RNDISConstants.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></Folder><Folder name="Board"><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="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="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="RZUSBSTICK"><File path="LUFA\Drivers\Board\RZUSBSTICK\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="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="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><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="EVK1101"><File path="LUFA\Drivers\Board\EVK1101\Buttons.h"></File><File path="LUFA\Drivers\Board\EVK1101\Joystick.h"></File><File path="LUFA\Drivers\Board\EVK1101\LEDs.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.h"></File><File path="LUFA\Drivers\Peripheral\AVR8\SPI.h"></File><File path="LUFA\Drivers\Peripheral\AVR8\TWI.h"></File></Folder><Folder name="AVR32"><File path="LUFA\Drivers\Peripheral\AVR32\SPI.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\SerialStream.c"></File><File path="LUFA\Drivers\Peripheral\SerialStream.h"></File><File path="LUFA\Drivers\Peripheral\TWI.h"></File><File path="LUFA\Drivers\Peripheral\TWI.c"></File></Folder></Folder><Folder name="DriverStubs"><File path="LUFA\DriverStubs\Dataflash.h"></File><File path="LUFA\DriverStubs\Joystick.h"></File><File path="LUFA\DriverStubs\LEDs.h"></File><File path="LUFA\DriverStubs\Buttons.h"></File></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\Licence.txt"></File><File path="LUFA\ManPages\WhyUseLUFA.txt"></File><File path="LUFA\ManPages\LUFAvsAtmelStack.txt"></File><File path="LUFA\ManPages\AlternativeStacks.txt"></File></Folder><Folder name="Scheduler"><File path="LUFA\Scheduler\Scheduler.c"></File><File path="LUFA\Scheduler\Scheduler.h"></File></Folder><File path="LUFA\makefile"></File><File path="LUFA\Version.h"></File><File path="LUFA\Doxygen.conf"></File></Folder><Folder name="Bootloaders"><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></Folder><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></Folder><Folder name="TeensyHID"><File path="Bootloaders\TeensyHID\Descriptors.c"></File><File path="Bootloaders\TeensyHID\Descriptors.h"></File><File path="Bootloaders\TeensyHID\makefile"></File><File path="Bootloaders\TeensyHID\TeensyHID.c"></File><File path="Bootloaders\TeensyHID\TeensyHID.h"></File><File path="Bootloaders\TeensyHID\TeensyHID.txt"></File></Folder><Folder name="Incomplete"><Folder name="MIDI"><Folder name="JavaHost"><File path="Bootloaders\Incomplete\MIDI\JavaHost\BIN2BOOT.java"></File><File path="Bootloaders\Incomplete\MIDI\JavaHost\MIDIMessageReceiver.java"></File></Folder><File path="Bootloaders\Incomplete\MIDI\BootloaderMIDI.c"></File><File path="Bootloaders\Incomplete\MIDI\BootloaderMIDI.h"></File><File path="Bootloaders\Incomplete\MIDI\Descriptors.c"></File><File path="Bootloaders\Incomplete\MIDI\Descriptors.h"></File><File path="Bootloaders\Incomplete\MIDI\Doxygen.conf"></File><File path="Bootloaders\Incomplete\MIDI\makefile"></File><File path="Bootloaders\Incomplete\MIDI\MIDI.c"></File></Folder></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\AVRISP.c"></File><File path="Projects\AVRISP-MKII\AVRISP.h"></File><File path="Projects\AVRISP-MKII\AVRISP.txt"></File><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></Folder><Folder name="Benito"><Folder name="Board"><File path="Projects\Benito\Board\LEDs.h"></File></Folder><Folder name="Lib"><File path="Projects\Benito\Lib\RingBuff.c"></File><File path="Projects\Benito\Lib\RingBuff.h"></File></Folder><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></Folder><Folder name="LEDNotifier"><Folder name="Board"><File path="Projects\LEDNotifier\Board\LEDs.h"></File></Folder><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></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></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></Folder><Folder name="TemperatureDataLogger"><Folder name="Lib"><Folder name="FATFs"><File path="Projects\TemperatureDataLogger\Lib\FATFs\diskio.c"></File><File path="Projects\TemperatureDataLogger\Lib\FATFs\diskio.h"></File><File path="Projects\TemperatureDataLogger\Lib\FATFs\ff.c"></File><File path="Projects\TemperatureDataLogger\Lib\FATFs\ff.h"></File><File path="Projects\TemperatureDataLogger\Lib\FATFs\ffconf.h"></File><File path="Projects\TemperatureDataLogger\Lib\FATFs\integer.h"></File></Folder><File path="Projects\TemperatureDataLogger\Lib\DataflashManager.c"></File><File path="Projects\TemperatureDataLogger\Lib\DataflashManager.h"></File><File path="Projects\TemperatureDataLogger\Lib\SCSI.c"></File><File path="Projects\TemperatureDataLogger\Lib\SCSI.h"></File><File path="Projects\TemperatureDataLogger\Lib\DS1307.c"></File><File path="Projects\TemperatureDataLogger\Lib\DS1307.h"></File></Folder><Folder name="TempLogHostApp"><File path="Projects\TemperatureDataLogger\TempLogHostApp\DataLoggerSettings.cs"></File><File path="Projects\TemperatureDataLogger\TempLogHostApp\DataLoggerSettings.Designer.cs"></File><File path="Projects\TemperatureDataLogger\TempLogHostApp\DataLoggerSettings.resx"></File><File path="Projects\TemperatureDataLogger\TempLogHostApp\Hid.Linux.dll"></File><File path="Projects\TemperatureDataLogger\TempLogHostApp\Hid.Net.dll"></File><File path="Projects\TemperatureDataLogger\TempLogHostApp\Hid.Win32.dll"></File><File path="Projects\TemperatureDataLogger\TempLogHostApp\Program.cs"></File><File path="Projects\TemperatureDataLogger\TempLogHostApp\TempLoggerHostApp.csproj"></File></Folder><File path="Projects\TemperatureDataLogger\Descriptors.c"></File><File path="Projects\TemperatureDataLogger\Descriptors.h"></File><File path="Projects\TemperatureDataLogger\makefile"></File><File path="Projects\TemperatureDataLogger\TempDataLogger.c"></File><File path="Projects\TemperatureDataLogger\TempDataLogger.h"></File><File path="Projects\TemperatureDataLogger\TemperatureDataLogger.txt"></File><File path="Projects\TemperatureDataLogger\Doxygen.conf"></File></Folder><Folder name="USBtoSerial"><Folder name="Lib"><File path="Projects\USBtoSerial\Lib\RingBuff.c"></File><File path="Projects\USBtoSerial\Lib\RingBuff.h"></File></Folder><File path="Projects\USBtoSerial\Descriptors.c"></File><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></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></Folder><Folder name="XPLAINBridge"><Folder name="Lib"><File path="Projects\XPLAINBridge\Lib\RingBuff.c"></File><File path="Projects\XPLAINBridge\Lib\RingBuff.h"></File><File path="Projects\XPLAINBridge\Lib\SoftUART.c"></File><File path="Projects\XPLAINBridge\Lib\SoftUART.h"></File></Folder><File path="Projects\XPLAINBridge\LUFA XPLAIN Bridge.inf"></File><File path="Projects\XPLAINBridge\makefile"></File><File path="Projects\XPLAINBridge\XPLAINBridge.c"></File><File path="Projects\XPLAINBridge\XPLAINBridge.h"></File><File path="Projects\XPLAINBridge\XPLAINBridge.txt"></File><File path="Projects\XPLAINBridge\USARTDescriptors.c"></File><File path="Projects\XPLAINBridge\USARTDescriptors.h"></File><File path="Projects\XPLAINBridge\AVRISPDescriptors.c"></File><File path="Projects\XPLAINBridge\AVRISPDescriptors.h"></File><File path="Projects\XPLAINBridge\Doxygen.conf"></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></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></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></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></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></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></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></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></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><File path="Demos\Device\ClassDriver\MassStorageKeyboard\Lib\SCSI_Codes.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></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></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></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></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></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></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></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></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></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></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></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></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></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><File path="Demos\Device\LowLevel\MassStorage\Lib\SCSI_Codes.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></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></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></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\RNDISConstants.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></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></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><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></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></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></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></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></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></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></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></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></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></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></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></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></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></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></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><File path="Demos\Host\LowLevel\MassStorageHost\Lib\SCSI_Codes.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></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></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></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></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></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><File path="Demos\Host\LowLevel\RNDISEthernetHost\Lib\RNDISConstants.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></Folder><Folder name="StillImageHost"><Folder name="Lib"><File path="Demos\Host\LowLevel\StillImageHost\Lib\PIMACodes.h"></File><File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.c"></File><File path="Demos\Host\LowLevel\StillImageHost\Lib\StillImageCommands.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></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></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></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></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></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\FunctionAttributes.h"></File><File path="LUFA\Common\BoardTypes.h"></File></Folder><Folder name="Drivers"><Folder name="USB"><Folder name="LowLevel"><Folder name="Template"><File path="LUFA\Drivers\USB\LowLevel\Template\Template_Endpoint_RW.c"></File><File path="LUFA\Drivers\USB\LowLevel\Template\Template_Endpoint_Control_R.c"></File><File path="LUFA\Drivers\USB\LowLevel\Template\Template_Endpoint_Control_W.c"></File><File path="LUFA\Drivers\USB\LowLevel\Template\Template_Pipe_RW.c"></File></Folder><File path="LUFA\Drivers\USB\LowLevel\HostChapter9.h"></File><File path="LUFA\Drivers\USB\LowLevel\LowLevel.c"></File><File path="LUFA\Drivers\USB\LowLevel\LowLevel.h"></File><File path="LUFA\Drivers\USB\LowLevel\Pipe.c"></File><File path="LUFA\Drivers\USB\LowLevel\Pipe.h"></File><File path="LUFA\Drivers\USB\LowLevel\DevChapter9.c"></File><File path="LUFA\Drivers\USB\LowLevel\DevChapter9.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\HostChapter9.c"></File><File path="LUFA\Drivers\USB\LowLevel\OTG.h"></File></Folder><Folder name="HighLevel"><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\USBInterrupt.c"></File><File path="LUFA\Drivers\USB\HighLevel\USBInterrupt.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\StreamCallbacks.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></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\HIDParser.c"></File><File path="LUFA\Drivers\USB\Class\Host\HIDParser.h"></File><File path="LUFA\Drivers\USB\Class\Host\HIDReportData.h"></File><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\RNDISConstants.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></Folder><Folder name="Board"><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="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="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="RZUSBSTICK"><File path="LUFA\Drivers\Board\RZUSBSTICK\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="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="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><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><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\SerialStream.c"></File><File path="LUFA\Drivers\Peripheral\SerialStream.h"></File><File path="LUFA\Drivers\Peripheral\TWI.h"></File><File path="LUFA\Drivers\Peripheral\TWI.c"></File></Folder></Folder><Folder name="DriverStubs"><File path="LUFA\DriverStubs\Dataflash.h"></File><File path="LUFA\DriverStubs\Joystick.h"></File><File path="LUFA\DriverStubs\LEDs.h"></File><File path="LUFA\DriverStubs\Buttons.h"></File></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\Licence.txt"></File><File path="LUFA\ManPages\WhyUseLUFA.txt"></File><File path="LUFA\ManPages\LUFAvsAtmelStack.txt"></File><File path="LUFA\ManPages\AlternativeStacks.txt"></File></Folder><Folder name="Scheduler"><File path="LUFA\Scheduler\Scheduler.c"></File><File path="LUFA\Scheduler\Scheduler.h"></File></Folder><File path="LUFA\makefile"></File><File path="LUFA\Version.h"></File><File path="LUFA\Doxygen.conf"></File></Folder><Folder name="Bootloaders"><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></Folder><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></Folder><Folder name="TeensyHID"><File path="Bootloaders\TeensyHID\Descriptors.c"></File><File path="Bootloaders\TeensyHID\Descriptors.h"></File><File path="Bootloaders\TeensyHID\makefile"></File><File path="Bootloaders\TeensyHID\TeensyHID.c"></File><File path="Bootloaders\TeensyHID\TeensyHID.h"></File><File path="Bootloaders\TeensyHID\TeensyHID.txt"></File></Folder><Folder name="Incomplete"><Folder name="MIDI"><Folder name="JavaHost"><File path="Bootloaders\Incomplete\MIDI\JavaHost\BIN2BOOT.java"></File><File path="Bootloaders\Incomplete\MIDI\JavaHost\MIDIMessageReceiver.java"></File></Folder><File path="Bootloaders\Incomplete\MIDI\BootloaderMIDI.c"></File><File path="Bootloaders\Incomplete\MIDI\BootloaderMIDI.h"></File><File path="Bootloaders\Incomplete\MIDI\Descriptors.c"></File><File path="Bootloaders\Incomplete\MIDI\Descriptors.h"></File><File path="Bootloaders\Incomplete\MIDI\Doxygen.conf"></File><File path="Bootloaders\Incomplete\MIDI\makefile"></File><File path="Bootloaders\Incomplete\MIDI\MIDI.c"></File></Folder></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\AVRISP.c"></File><File path="Projects\AVRISP-MKII\AVRISP.h"></File><File path="Projects\AVRISP-MKII\AVRISP.txt"></File><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></Folder><Folder name="Benito"><Folder name="Board"><File path="Projects\Benito\Board\LEDs.h"></File></Folder><Folder name="Lib"><File path="Projects\Benito\Lib\RingBuff.c"></File><File path="Projects\Benito\Lib\RingBuff.h"></File></Folder><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></Folder><Folder name="LEDNotifier"><Folder name="Board"><File path="Projects\LEDNotifier\Board\LEDs.h"></File></Folder><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></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></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></Folder><Folder name="TemperatureDataLogger"><Folder name="Lib"><Folder name="FATFs"><File path="Projects\TemperatureDataLogger\Lib\FATFs\diskio.c"></File><File path="Projects\TemperatureDataLogger\Lib\FATFs\diskio.h"></File><File path="Projects\TemperatureDataLogger\Lib\FATFs\ff.c"></File><File path="Projects\TemperatureDataLogger\Lib\FATFs\ff.h"></File><File path="Projects\TemperatureDataLogger\Lib\FATFs\ffconf.h"></File><File path="Projects\TemperatureDataLogger\Lib\FATFs\integer.h"></File></Folder><File path="Projects\TemperatureDataLogger\Lib\DataflashManager.c"></File><File path="Projects\TemperatureDataLogger\Lib\DataflashManager.h"></File><File path="Projects\TemperatureDataLogger\Lib\SCSI.c"></File><File path="Projects\TemperatureDataLogger\Lib\SCSI.h"></File><File path="Projects\TemperatureDataLogger\Lib\DS1307.c"></File><File path="Projects\TemperatureDataLogger\Lib\DS1307.h"></File></Folder><Folder name="TempLogHostApp"><File path="Projects\TemperatureDataLogger\TempLogHostApp\DataLoggerSettings.cs"></File><File path="Projects\TemperatureDataLogger\TempLogHostApp\DataLoggerSettings.Designer.cs"></File><File path="Projects\TemperatureDataLogger\TempLogHostApp\DataLoggerSettings.resx"></File><File path="Projects\TemperatureDataLogger\TempLogHostApp\Hid.Linux.dll"></File><File path="Projects\TemperatureDataLogger\TempLogHostApp\Hid.Net.dll"></File><File path="Projects\TemperatureDataLogger\TempLogHostApp\Hid.Win32.dll"></File><File path="Projects\TemperatureDataLogger\TempLogHostApp\Program.cs"></File><File path="Projects\TemperatureDataLogger\TempLogHostApp\TempLoggerHostApp.csproj"></File></Folder><File path="Projects\TemperatureDataLogger\Descriptors.c"></File><File path="Projects\TemperatureDataLogger\Descriptors.h"></File><File path="Projects\TemperatureDataLogger\makefile"></File><File path="Projects\TemperatureDataLogger\TempDataLogger.c"></File><File path="Projects\TemperatureDataLogger\TempDataLogger.h"></File><File path="Projects\TemperatureDataLogger\TemperatureDataLogger.txt"></File><File path="Projects\TemperatureDataLogger\Doxygen.conf"></File></Folder><Folder name="USBtoSerial"><Folder name="Lib"><File path="Projects\USBtoSerial\Lib\RingBuff.c"></File><File path="Projects\USBtoSerial\Lib\RingBuff.h"></File></Folder><File path="Projects\USBtoSerial\Descriptors.c"></File><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></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></Folder><Folder name="XPLAINBridge"><Folder name="Lib"><File path="Projects\XPLAINBridge\Lib\RingBuff.c"></File><File path="Projects\XPLAINBridge\Lib\RingBuff.h"></File><File path="Projects\XPLAINBridge\Lib\SoftUART.c"></File><File path="Projects\XPLAINBridge\Lib\SoftUART.h"></File></Folder><File path="Projects\XPLAINBridge\LUFA XPLAIN Bridge.inf"></File><File path="Projects\XPLAINBridge\makefile"></File><File path="Projects\XPLAINBridge\XPLAINBridge.c"></File><File path="Projects\XPLAINBridge\XPLAINBridge.h"></File><File path="Projects\XPLAINBridge\XPLAINBridge.txt"></File><File path="Projects\XPLAINBridge\USARTDescriptors.c"></File><File path="Projects\XPLAINBridge\USARTDescriptors.h"></File><File path="Projects\XPLAINBridge\AVRISPDescriptors.c"></File><File path="Projects\XPLAINBridge\AVRISPDescriptors.h"></File><File path="Projects\XPLAINBridge\Doxygen.conf"></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
diff --git a/LUFA/Common/Atomic.h b/LUFA/Common/Atomic.h
deleted file mode 100644 (file)
index 81ac10c..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*\r
-             LUFA Library\r
-     Copyright (C) Dean Camera, 2010.\r
-\r
-  dean [at] fourwalledcubicle [dot] com\r
-      www.fourwalledcubicle.com\r
-*/\r
-\r
-/*\r
-  Copyright 2010  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
- *\r
- *  Atomic block header for the 32-bit AVRs, modelled on the 8-bit AVR's util/atomic.h\r
- *  header.\r
- *\r
- *  \note Do not include this file directly, rather include the Common.h header file instead to gain this file's\r
- *        functionality on the 32-bit AVRs.\r
- */\r
-\r
-#ifndef __ATOMIC_H__\r
-#define __ATOMIC_H__\r
-\r
-       /* Includes: */\r
-               #include <avr32/io.h>\r
-               #include <stdint.h>\r
-               #include <stdbool.h>\r
-\r
-       /* Public Interface - May be used in end-application: */\r
-               /* Macros: */\r
-                       #define ATOMIC_BLOCK(type) for ( type, __ToDo = __iCliRetVal(); \\r
-                                                                          __ToDo ; __ToDo = 0 )\r
-                       #define NONATOMIC_BLOCK(type) for ( type, __ToDo = __iSeiRetVal(); \\r
-                                                                                 __ToDo ;  __ToDo = 0 )\r
-                       #define ATOMIC_RESTORESTATE uint8_t sreg_save \\r
-                               __attribute__((__cleanup__(__iRestore))) = 0 /* TODO */\r
-                       #define ATOMIC_FORCEON uint8_t sreg_save \\r
-                               __attribute__((__cleanup__(__iSeiParam))) = 0\r
-                       #define NONATOMIC_RESTORESTATE uint8_t sreg_save \\r
-                               __attribute__((__cleanup__(__iRestore))) = 0 /* TODO */\r
-                       #define NONATOMIC_FORCEOFF uint8_t sreg_save \\r
-                               __attribute__((__cleanup__(__iCliParam))) = 0\r
-\r
-       /* Private Interface - For use in library only: */\r
-       #if !defined(__DOXYGEN__)\r
-               /* Inline Functions: */\r
-                       static __inline__ uint8_t __iSeiRetVal(void)\r
-                       {\r
-                               ((avr32_sr_t*)AVR32_SR_T)->gm = true;\r
-                               return 1;\r
-                       }\r
-\r
-                       static __inline__ uint8_t __iCliRetVal(void)\r
-                       {\r
-                               ((avr32_sr_t*)AVR32_SR_T)->gm = false;\r
-                               return 1;\r
-                       }\r
-\r
-                       static __inline__ void __iSeiParam(const uint8_t *__s)\r
-                       {\r
-                               ((avr32_sr_t*)AVR32_SR_T)->gm = true;\r
-                               __asm__ volatile ("" ::: "memory");\r
-                               (void)__s;\r
-                       }\r
-\r
-                       static __inline__ void __iCliParam(const uint8_t *__s)\r
-                       {\r
-                               ((avr32_sr_t*)AVR32_SR_T)->gm = false;\r
-                               __asm__ volatile ("" ::: "memory");\r
-                               (void)__s;\r
-                       }\r
-\r
-                       static __inline__ void __iRestore(const uint8_t *__s)\r
-                       {\r
-                               ((avr32_sr_t*)AVR32_SR_T)->gm = *__s;\r
-                               __asm__ volatile ("" ::: "memory");\r
-                       }\r
-       #endif\r
-\r
-#endif\r
index 43b692d..10e31ac 100644 (file)
@@ -94,9 +94,6 @@
                         *  such as the Joystick driver, where the removal would adversely affect the code's operation is still disallowed. */\r
                        #define BOARD_NONE          10\r
                        \r
-                       /** Selects the EVK1101 specific board drivers, including Temperature, Button, Dataflash, Joystick and LED drivers. */\r
-                       #define BOARD_EVK1101       11\r
-\r
                        #if !defined(__DOXYGEN__)\r
                                #define BOARD_          BOARD_NONE\r
                                \r
index 74b687b..2ddb58c 100644 (file)
 #define __COMMON_H__\r
 \r
        /* Includes: */\r
-               #if defined(__AVR32__)\r
-                       #include <avr32/io.h>\r
-                       #include <stdint.h>\r
-\r
-                       #include "Atomic.h"\r
-\r
-                       #define PROGMEM const\r
-               #elif defined(__AVR__)\r
-                       #include <avr/io.h>\r
-               #endif\r
-\r
+               #include <avr/io.h>\r
+       \r
                #include "FunctionAttributes.h"\r
                #include "BoardTypes.h"\r
 \r
                                }\r
                        }\r
 \r
-               /* Type Defines: */\r
-                       #if defined(__AVR32__)\r
-                               /** Type define for an unsigned native word-sized chunk of data. */\r
-                               typedef uint32_t uintN_t;\r
-\r
-                               /** Type define for a signed native word-sized chunk of data. */\r
-                               typedef int32_t intN_t;\r
-                       #elif defined(__AVR__)\r
-                               /** Type define for an unsigned native word-sized chunk of data. */\r
-                               typedef uint8_t uintN_t;\r
-\r
-                               /** Type define for a signed native word-sized chunk of data. */\r
-                               typedef int8_t intN_t;\r
-                       #endif\r
 #endif\r
 \r
 /** @} */\r
index 8c97cd7..deab56e 100644 (file)
@@ -70,7 +70,8 @@
                                // TODO: Initialize the appropriate port pins as an inputs here, with pull-ups\r
                        }\r
 \r
-                       static inline uintN_t Buttons_GetStatus(void)\r
+                       static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;\r
+                       static inline uint8_t Buttons_GetStatus(void)\r
                        {\r
                                // TODO: Return current button status here, debounced if required\r
                        }\r
index 859225f..21e306f 100644 (file)
@@ -82,7 +82,8 @@
                                // TODO: Initialize joystick port pins as inputs with pull-ups\r
                        }\r
                        \r
-                       static inline uintN_t Joystick_GetStatus(void)\r
+                       static inline uint8_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT;\r
+                       static inline uint8_t Joystick_GetStatus(void)\r
                        {\r
                                // TODO: Return current joystick position data which can be obtained by masking against the JOY_* macros\r
                        }\r
index 1b34e58..6bdc847 100644 (file)
                                // TODO: Add code to initialize LED port pins as outputs here\r
                        }\r
                        \r
-                       static inline void LEDs_TurnOnLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)\r
                        {\r
                                // TODO: Add code to turn on LEDs given in the LEDMask mask here, leave others as-is\r
                        }\r
 \r
-                       static inline void LEDs_TurnOffLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)\r
                        {\r
                                // TODO: Add code to turn off LEDs given in the LEDMask mask here, leave others as-is\r
                        }\r
 \r
-                       static inline void LEDs_SetAllLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)\r
                        {\r
                                // TODO: Add code to turn on only LEDs given in the LEDMask mask here, all others off\r
                        }\r
                        \r
-                       static inline void LEDs_ChangeLEDs(const uintN_t LEDMask, const uintN_t ActiveMask)\r
+                       static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask)\r
                        {\r
                                // TODO: Add code to set the Leds in the given LEDMask to the status given in ActiveMask here\r
                        }\r
 \r
-                       static inline void LEDs_ToggleLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)\r
                        {\r
                                // TODO: Add code to toggle the Leds in the given LEDMask, ignoring all others\r
                        }\r
                        \r
-                       static inline uintN_t LEDs_GetLEDs(void)\r
+                       static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;\r
+                       static inline uint8_t LEDs_GetLEDs(void)\r
                        {\r
                                // TODO: Add code to return the current LEDs status' here which can be masked against LED_LED* macros\r
                        }\r
index d26e0e8..af95a89 100644 (file)
@@ -79,7 +79,8 @@
                                PORTD |=  BUTTONS_BUTTON1;\r
                        }\r
 \r
-                       static inline uintN_t Buttons_GetStatus(void)\r
+                       static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;\r
+                       static inline uint8_t Buttons_GetStatus(void)\r
                        {\r
                                return ((PIND & BUTTONS_BUTTON1) ^ BUTTONS_BUTTON1);\r
                        }\r
index fb7e09f..2208f2e 100644 (file)
                                PORTD &= ~LEDS_ALL_LEDS;\r
                        }\r
 \r
-                       static inline void LEDs_TurnOnLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTD |= (LEDMask & LEDS_ALL_LEDS);\r
                        }\r
 \r
-                       static inline void LEDs_TurnOffLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTD &= ~(LEDMask & LEDS_ALL_LEDS);\r
                        }\r
 \r
-                       static inline void LEDs_SetAllLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTD = (PORTD & ~LEDS_ALL_LEDS) | (LEDMask & LEDS_ALL_LEDS);\r
                        }\r
                        \r
-                       static inline void LEDs_ChangeLEDs(const uintN_t LEDMask, const uintN_t ActiveMask)\r
+                       static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask)\r
                        {\r
                                PORTD = ((PORTD & ~(LEDMask & LEDS_ALL_LEDS)) | (ActiveMask & LEDS_ALL_LEDS));\r
                        }\r
 \r
-                       static inline void LEDs_ToggleLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTD = (PORTD ^ (LEDMask & LEDS_ALL_LEDS));\r
                        }\r
                        \r
-                       static inline uintN_t LEDs_GetLEDs(void)\r
+                       static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;\r
+                       static inline uint8_t LEDs_GetLEDs(void)\r
                        {\r
                                return (PORTD & LEDS_ALL_LEDS);\r
                        }\r
index 166c970..e0a5cc5 100644 (file)
@@ -81,7 +81,8 @@
                                PORTD |=  BUTTONS_BUTTON1;\r
                        }\r
 \r
-                       static inline uintN_t Buttons_GetStatus(void)\r
+                       static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;\r
+                       static inline uint8_t Buttons_GetStatus(void)\r
                        {\r
                                return ((PIND & BUTTONS_BUTTON1) ^ BUTTONS_BUTTON1);\r
                        }\r
index fdd4b03..5d57ec5 100644 (file)
@@ -30,7 +30,7 @@
 \r
 /** \file\r
  *\r
- *  Board specific joystick driver header for the BUMBLEB. The BUMBLEB third-party board does not include any on-board\r
+ *  Board specific joystick driver header for the USBKEY. The BUMBLEB third-party board does not include any on-board\r
  *  peripherals, but does have an officially recommended external peripheral layout for buttons, LEDs and a Joystick.\r
  *\r
  *  \note This file should not be included directly. It is automatically included as needed by the joystick driver\r
@@ -40,7 +40,7 @@
 /** \ingroup Group_Joystick\r
  *  @defgroup Group_Joystick_BUMBLEB BUMBLEB\r
  *\r
- *  Board specific joystick driver header for the BUMBLEB. The BUMBLEB third-party board does not include any on-board\r
+ *  Board specific joystick driver header for the USBKEY. The BUMBLEB third-party board does not include any on-board\r
  *  peripherals, but does have an officially recommended external peripheral layout for buttons, LEDs and a Joystick.\r
  *\r
  *  \note This file should not be included directly. It is automatically included as needed by the joystick driver\r
@@ -98,7 +98,8 @@
                                PORTD |= JOY_MASK;\r
                        }\r
                        \r
-                       static inline uintN_t Joystick_GetStatus(void)\r
+                       static inline uint8_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT;\r
+                       static inline uint8_t Joystick_GetStatus(void)\r
                        {\r
                                return (uint8_t)(~PIND & JOY_MASK);\r
                        }\r
index a5251be..549bbde 100644 (file)
                                PORTB &= ~LEDS_ALL_LEDS;\r
                        }\r
                        \r
-                       static inline void LEDs_TurnOnLEDs(const uintN_t LedMask)\r
+                       static inline void LEDs_TurnOnLEDs(const uint8_t LedMask)\r
                        {\r
                                PORTB |= LedMask;\r
                        }\r
 \r
-                       static inline void LEDs_TurnOffLEDs(const uintN_t LedMask)\r
+                       static inline void LEDs_TurnOffLEDs(const uint8_t LedMask)\r
                        {\r
                                PORTB &= ~LedMask;\r
                        }\r
 \r
-                       static inline void LEDs_SetAllLEDs(const uintN_t LedMask)\r
+                       static inline void LEDs_SetAllLEDs(const uint8_t LedMask)\r
                        {\r
                                PORTB = ((PORTB & ~LEDS_ALL_LEDS) | LedMask);\r
                        }\r
                \r
-                       static inline void LEDs_ChangeLEDs(const uintN_t LedMask, const uintN_t ActiveMask)\r
+                       static inline void LEDs_ChangeLEDs(const uint8_t LedMask, const uint8_t ActiveMask)\r
                        {\r
                                PORTB = ((PORTB & ~LedMask) | ActiveMask);\r
                        }\r
                        \r
-                       static inline uintN_t LEDs_GetLEDs(void)\r
+                       static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;\r
+                       static inline uint8_t LEDs_GetLEDs(void)\r
                        {\r
                                return (PORTB & LEDS_ALL_LEDS);\r
                        }\r
index f509777..d908fd4 100644 (file)
@@ -86,8 +86,6 @@
                #include "EVK527/Buttons.h"\r
        #elif (BOARD == BOARD_USER)\r
                #include "Board/Buttons.h"\r
-       #elif (BOARD == BOARD_EVK1101)\r
-               #include "EVK1101/Buttons.h"\r
        #else\r
                #error The selected board does not contain any GPIO buttons.\r
        #endif\r
                 *\r
                 *  \return Mask indicating which board buttons are currently pressed\r
                 */\r
-               static inline uintN_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;\r
+               static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;\r
        #endif\r
 \r
 #endif\r
index dfd8cd6..762142c 100644 (file)
                        static inline uint8_t Dataflash_TransferByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;\r
                        static inline uint8_t Dataflash_TransferByte(const uint8_t Byte)\r
                        {\r
-                               return SPI_Transfer(Byte);\r
+                               return SPI_TransferByte(Byte);\r
                        }\r
 \r
                        /** Sends a byte to the currently selected dataflash IC, and ignores the next byte from the dataflash.\r
                        static inline void Dataflash_SendByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;\r
                        static inline void Dataflash_SendByte(const uint8_t Byte)\r
                        {\r
-                               SPI_Send(Byte);\r
+                               SPI_SendByte(Byte);\r
                        }\r
                        \r
                        /** Sends a dummy byte to the currently selected dataflash IC, and returns the next byte from the dataflash.\r
                        static inline uint8_t Dataflash_ReceiveByte(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;\r
                        static inline uint8_t Dataflash_ReceiveByte(void)\r
                        {\r
-                               return SPI_Receive();\r
+                               return SPI_ReceiveByte();\r
                        }\r
 \r
                /* Includes: */\r
                                #include "EVK527/Dataflash.h"\r
                        #elif (BOARD == BOARD_USER)\r
                                #include "Board/Dataflash.h"\r
-                       #elif (BOARD = BOARD_EVK1101)\r
-                               #include "EVK1101/Dataflash.h"\r
                        #else\r
                                #error The selected board does not contain a dataflash IC.\r
                        #endif\r
diff --git a/LUFA/Drivers/Board/EVK1101/Buttons.h b/LUFA/Drivers/Board/EVK1101/Buttons.h
deleted file mode 100644 (file)
index 0aa195f..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-/*\r
-             LUFA Library\r
-     Copyright (C) Dean Camera, 2010.\r
-              \r
-  dean [at] fourwalledcubicle [dot] com\r
-      www.fourwalledcubicle.com\r
-*/\r
-\r
-/*\r
-  Copyright 2010  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
- *\r
- *  Board specific Buttons driver header for the EVK1101.\r
- *\r
- *  \note This file should not be included directly. It is automatically included as needed by the Buttons driver\r
- *        dispatch header located in LUFA/Drivers/Board/Buttons.h.\r
- */\r
-\r
-/** \ingroup Group_Buttons\r
- *  @defgroup Group_Buttons_EVK1101 EVK1101\r
- *\r
- *  Board specific Buttons driver header for the EVK1101.\r
- *\r
- *  \note This file should not be included directly. It is automatically included as needed by the Buttons driver\r
- *        dispatch header located in LUFA/Drivers/Board/Buttons.h.\r
- *\r
- *  @{\r
- */\r
-\r
-#ifndef __BUTTONS_EVK1101_H__\r
-#define __BUTTONS_EVK1101_H__\r
-\r
-       /* Includes: */\r
-               #include <avr32/io.h>\r
-               #include <stdbool.h>\r
-\r
-               #include "../../../Common/Common.h"\r
-\r
-       /* Enable C linkage for C++ Compilers: */\r
-               #if defined(__cplusplus)\r
-                       extern "C" {\r
-               #endif\r
-\r
-       /* Preprocessor Checks: */\r
-               #if !defined(__INCLUDE_FROM_BUTTONS_H)\r
-                       #error Do not include this file directly. Include LUFA/Drivers/Board/Buttons.h instead.\r
-               #endif\r
-               \r
-       /* Public Interface - May be used in end-application: */\r
-               /* Macros: */\r
-                       /** Button mask for the first button on the board. */\r
-                       #define BUTTONS_BUTTON1      (1UL << 2)\r
-       \r
-                       /** Button mask for the second button on the board. */\r
-                       #define BUTTONS_BUTTON2      (1UL << 3)\r
-\r
-               /* Inline Functions: */\r
-               #if !defined(__DOXYGEN__)\r
-                       static inline void Buttons_Init(void)\r
-                       {\r
-                               AVR32_GPIO.port[1].gpers = (BUTTONS_BUTTON1 | BUTTONS_BUTTON2);\r
-                               AVR32_GPIO.port[1].puers = (BUTTONS_BUTTON1 | BUTTONS_BUTTON2);\r
-                       }\r
-\r
-                       static inline uintN_t Buttons_GetStatus(void)\r
-                       {\r
-                               return (~AVR32_GPIO.port[1].pvr & (BUTTONS_BUTTON1 | BUTTONS_BUTTON2));\r
-                       }\r
-               #endif\r
-\r
-       /* Disable C linkage for C++ Compilers: */\r
-               #if defined(__cplusplus)\r
-                       }\r
-               #endif\r
-                       \r
-#endif\r
-\r
-/** @} */\r
diff --git a/LUFA/Drivers/Board/EVK1101/Joystick.h b/LUFA/Drivers/Board/EVK1101/Joystick.h
deleted file mode 100644 (file)
index f02ec40..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-/*\r
-             LUFA Library\r
-     Copyright (C) Dean Camera, 2010.\r
-              \r
-  dean [at] fourwalledcubicle [dot] com\r
-      www.fourwalledcubicle.com\r
-*/\r
-\r
-/*\r
-  Copyright 2010  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
- *\r
- *  Board specific joystick driver header for the EVK1101.\r
- *\r
- *  \note This file should not be included directly. It is automatically included as needed by the joystick driver\r
- *        dispatch header located in LUFA/Drivers/Board/Joystick.h.\r
- */\r
-\r
-/** \ingroup Group_Joystick\r
- *  @defgroup Group_Joystick_EVK1101 EVK1101\r
- *\r
- *  Board specific joystick driver header for the EVK1101.\r
- *\r
- *  \note This file should not be included directly. It is automatically included as needed by the joystick driver\r
- *        dispatch header located in LUFA/Drivers/Board/Joystick.h.\r
- *\r
- *  @{\r
- */\r
-\r
-#ifndef __JOYSTICK_EVK1101_H__\r
-#define __JOYSTICK_EVK1101_H__\r
-\r
-       /* Includes: */\r
-               #include <avr32/io.h>\r
-\r
-               #include "../../../Common/Common.h"\r
-\r
-       /* Enable C linkage for C++ Compilers: */\r
-               #if defined(__cplusplus)\r
-                       extern "C" {\r
-               #endif\r
-\r
-       /* Preprocessor Checks: */\r
-               #if !defined(__INCLUDE_FROM_JOYSTICK_H)\r
-                       #error Do not include this file directly. Include LUFA/Drivers/Board/Joystick.h instead.\r
-               #endif\r
-\r
-       /* Private Interface - For use in library only: */\r
-       #if !defined(__DOXYGEN__)\r
-               /* Macros: */\r
-                       #define JOY_MASK_PA              (1 << 13)\r
-                       #define JOY_MASK_PB              ((1 << 6) | (1 << 7) | (1 << 8) | (1 << 9))\r
-       #endif\r
-\r
-       /* Public Interface - May be used in end-application: */\r
-               /* Macros: */\r
-                       /** Mask for the joystick being pushed in the left direction. */\r
-                       #define JOY_LEFT                  (1UL << 6)\r
-\r
-                       /** Mask for the joystick being pushed in the upward direction. */\r
-                       #define JOY_UP                    (1UL << 7)\r
-\r
-                       /** Mask for the joystick being pushed in the right direction. */\r
-                       #define JOY_RIGHT                 (1UL << 8)\r
-\r
-                       /** Mask for the joystick being pushed in the downward direction. */\r
-                       #define JOY_DOWN                  (1UL << 9)\r
-\r
-                       /** Mask for the joystick being pushed inward. */\r
-                       #define JOY_PRESS                 (1UL << 13)\r
-                       \r
-               /* Inline Functions: */\r
-               #if !defined(__DOXYGEN__)\r
-                       static inline void Joystick_Init(void)\r
-                       {\r
-                               AVR32_GPIO.port[0].gpers = JOY_MASK_PA;\r
-                               AVR32_GPIO.port[0].puers = JOY_MASK_PA;\r
-                               AVR32_GPIO.port[1].gpers = JOY_MASK_PB;\r
-                               AVR32_GPIO.port[1].puers = JOY_MASK_PB;\r
-                       }\r
-                       \r
-                       static inline uintN_t Joystick_GetStatus(void)\r
-                       {\r
-                               return ((~AVR32_GPIO.port[1].pvr & JOY_MASK_PB) |\r
-                                       (~AVR32_GPIO.port[0].pvr & JOY_MASK_PA));\r
-                       }\r
-               #endif\r
-\r
-       /* Disable C linkage for C++ Compilers: */\r
-               #if defined(__cplusplus)\r
-                       }\r
-               #endif\r
-\r
-#endif\r
-\r
-/** @} */\r
diff --git a/LUFA/Drivers/Board/EVK1101/LEDs.h b/LUFA/Drivers/Board/EVK1101/LEDs.h
deleted file mode 100644 (file)
index 9b34169..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-/*\r
-             LUFA Library\r
-     Copyright (C) Dean Camera, 2010.\r
-              \r
-  dean [at] fourwalledcubicle [dot] com\r
-      www.fourwalledcubicle.com\r
-*/\r
-\r
-/*\r
-  Copyright 2010  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
- *\r
- *  Board specific LED driver header for the EVK1101.\r
- *\r
- *  \note This file should not be included directly. It is automatically included as needed by the LEDs driver\r
- *        dispatch header located in LUFA/Drivers/Board/LEDs.h.\r
- */\r
-\r
-/** \ingroup Group_LEDs\r
- *  @defgroup Group_LEDs_EVK1101 EVK1101\r
- *\r
- *  Board specific LED driver header for the EVK1101.\r
- *\r
- *  \note This file should not be included directly. It is automatically included as needed by the LEDs driver\r
- *        dispatch header located in LUFA/Drivers/Board/LEDs.h.\r
- *\r
- *  @{\r
- */\r
-\r
-#ifndef __LEDS_EVK1101_H__\r
-#define __LEDS_EVK1101_H__\r
-\r
-       /* Includes: */\r
-               #include <avr32/io.h>\r
-\r
-               #include "../../../Common/Common.h"\r
-\r
-       /* Enable C linkage for C++ Compilers: */\r
-               #if defined(__cplusplus)\r
-                       extern "C" {\r
-               #endif\r
-\r
-       /* Preprocessor Checks: */\r
-               #if !defined(__INCLUDE_FROM_LEDS_H)\r
-                       #error Do not include this file directly. Include LUFA/Drivers/Board/LEDS.h instead.\r
-               #endif\r
-\r
-       /* Public Interface - May be used in end-application: */\r
-               /* Macros: */\r
-                       /** LED mask for the first LED on the board. */\r
-                       #define LEDS_LED1        (1UL << 7)\r
-\r
-                       /** LED mask for the second LED on the board. */\r
-                       #define LEDS_LED2        (1UL << 8)\r
-\r
-                       /** LED mask for the third LED on the board. */\r
-                       #define LEDS_LED3        (1UL << 21)\r
-\r
-                       /** LED mask for the fourth LED on the board. */\r
-                       #define LEDS_LED4        (1UL << 22)\r
-\r
-                       /** LED mask for all the LEDs on the board. */\r
-                       #define LEDS_ALL_LEDS    (LEDS_LED1 | LEDS_LED2 | LEDS_LED3 | LEDS_LED4)\r
-\r
-                       /** LED mask for the none of the board LEDs */\r
-                       #define LEDS_NO_LEDS     0\r
-\r
-               /* Inline Functions: */\r
-               #if !defined(__DOXYGEN__)\r
-                       static inline void LEDs_Init(void)\r
-                       {\r
-                               AVR32_GPIO.port[0].gpers = LEDS_ALL_LEDS;\r
-                               AVR32_GPIO.port[0].oders = LEDS_ALL_LEDS;\r
-                               AVR32_GPIO.port[0].ovrs  = LEDS_ALL_LEDS;\r
-                       }\r
-                       \r
-                       static inline void LEDs_TurnOnLEDs(const uintN_t LEDMask)\r
-                       {\r
-                               AVR32_GPIO.port[0].ovrc = LEDMask;\r
-                       }\r
-\r
-                       static inline void LEDs_TurnOffLEDs(const uintN_t LEDMask)\r
-                       {\r
-                               AVR32_GPIO.port[0].ovrs = LEDMask;\r
-                       }\r
-\r
-                       static inline void LEDs_SetAllLEDs(const uintN_t LEDMask)\r
-                       {\r
-                               AVR32_GPIO.port[0].ovrs = LEDS_ALL_LEDS;\r
-                               AVR32_GPIO.port[0].ovrc = LEDMask;\r
-                       }\r
-                       \r
-                       static inline void LEDs_ChangeLEDs(const uintN_t LEDMask, const uintN_t ActiveMask)\r
-                       {\r
-                               AVR32_GPIO.port[0].ovrs = LEDMask;\r
-                               AVR32_GPIO.port[0].ovrc = ActiveMask;\r
-                       }\r
-                       \r
-                       static inline void LEDs_ToggleLEDs(const uintN_t LEDMask)\r
-                       {\r
-                               AVR32_GPIO.port[0].ovrt = LEDMask;\r
-                       }\r
-                       \r
-                       static inline uintN_t LEDs_GetLEDs(void)\r
-                       {\r
-                               return (AVR32_GPIO.port[0].ovr & LEDS_ALL_LEDS);\r
-                       }\r
-               #endif\r
-\r
-       /* Disable C linkage for C++ Compilers: */\r
-               #if defined(__cplusplus)\r
-                       }\r
-               #endif\r
-               \r
-#endif\r
-\r
-/** @} */\r
index 950c574..0150fa1 100644 (file)
@@ -85,7 +85,8 @@
                                PORTE |=  BUTTONS_BUTTON1;\r
                        }\r
 \r
-                       static inline uintN_t Buttons_GetStatus(void)\r
+                       static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;\r
+                       static inline uint8_t Buttons_GetStatus(void)\r
                        {\r
                                return ((PINE & BUTTONS_BUTTON1) ^ BUTTONS_BUTTON1);\r
                        }\r
index d8583d1..7d208ea 100644 (file)
@@ -68,7 +68,7 @@
        /* Private Interface - For use in library only: */\r
        #if !defined(__DOXYGEN__)\r
                /* Macros: */\r
-                       #define JOY_FMASK                ((1 << 4) | (1 << 5) | (1 << 6) | (1 << 7))\r
+                       #define JOY_FMASK                 ((1 << 4) | (1 << 5) | (1 << 6) | (1 << 7))\r
                        #define JOY_CMASK                 (1 << 6))\r
        #endif\r
        \r
                                PORTC |= JOY_CMASK;                             \r
                        }\r
                        \r
-                       static inline uintN_t Joystick_GetStatus(void)\r
+                       static inline uint8_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT;\r
+                       static inline uint8_t Joystick_GetStatus(void)\r
                        {\r
                                return (((uint8_t)~PINF & JOY_FMASK) | (((uint8_t)~PINC & JOY_CMASK) >> 3));\r
                        }\r
index d01a814..ea7c7c2 100644 (file)
                                PORTD &= ~LEDS_ALL_LEDS;\r
                        }\r
                        \r
-                       static inline void LEDs_TurnOnLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTD |= LEDMask;\r
                        }\r
 \r
-                       static inline void LEDs_TurnOffLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTD &= ~LEDMask;\r
                        }\r
 \r
-                       static inline void LEDs_SetAllLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTD = ((PORTD & ~LEDS_ALL_LEDS) | LEDMask);\r
                        }\r
                        \r
-                       static inline void LEDs_ChangeLEDs(const uintN_t LEDMask, const uintN_t ActiveMask)\r
+                       static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask)\r
                        {\r
                                PORTD = ((PORTD & ~LEDMask) | ActiveMask);\r
                        }\r
                        \r
-                       static inline void LEDs_ToggleLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTD = (PORTD ^ (LEDMask & LEDS_ALL_LEDS));\r
                        }\r
                        \r
+                       static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;\r
                        static inline uint8_t LEDs_GetLEDs(void)\r
                        {\r
                                return (PORTD & LEDS_ALL_LEDS);\r
index b14e989..39375a2 100644 (file)
@@ -83,8 +83,6 @@
                #include "EVK527/Joystick.h"\r
        #elif (BOARD == BOARD_USER)\r
                #include "Board/Joystick.h"\r
-       #elif (BOARD == BOARD_EVK1101)\r
-               #include "EVK1101/Joystick.h"\r
        #else\r
                #error The selected board does not contain a joystick.\r
        #endif\r
                 *  \return Mask indicating the joystick direction - see corresponding board specific Joystick.h file\r
                 *          for direction masks\r
                 */\r
-               static inline uintN_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT;\r
+               static inline uint8_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT;\r
        #endif\r
 \r
 #endif\r
index 1def9ea..94fbf3c 100644 (file)
@@ -84,7 +84,7 @@
                static inline void LEDs_SetAllLEDs(const uint8_t LEDMask) {};\r
                static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask) {};\r
                static inline void LEDs_ToggleLEDs(const uint8_t LEDMask) {};\r
-               static inline uintN_t LEDs_GetLEDs(void) { return 0; }\r
+               static inline uint8_t LEDs_GetLEDs(void) { return 0; }\r
        #elif (BOARD == BOARD_USBKEY)\r
                #include "USBKEY/LEDs.h"\r
        #elif (BOARD == BOARD_STK525)\r
                #include "EVK527/LEDs.h"                \r
        #elif (BOARD == BOARD_USER)\r
                #include "Board/LEDs.h"\r
-       #elif (BOARD == BOARD_EVK1101)\r
-               #include "EVK1101/LEDs.h"\r
        #endif\r
        \r
        #if !defined(LEDS_LED1)\r
                 *\r
                 *  \param[in] LEDMask  Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)\r
                 */\r
-               static inline void LEDs_TurnOnLEDs(const uintN_t LEDMask);\r
+               static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask);\r
 \r
                /** Turns off the LEDs specified in the given LED mask.\r
                 *\r
                 *  \param[in] LEDMask  Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)\r
                 */\r
-               static inline void LEDs_TurnOffLEDs(const uintN_t LEDMask);\r
+               static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask);\r
 \r
                /** Turns off all LEDs not specified in the given LED mask, and turns on all the LEDs in the given LED\r
                 *  mask.\r
                 *\r
                 *  \param[in] LEDMask  Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)\r
                 */\r
-               static inline void LEDs_SetAllLEDs(const uintN_t LEDMask);\r
+               static inline void LEDs_SetAllLEDs(const uint8_t LEDMask);\r
 \r
                /** Turns off all LEDs in the LED mask that are not set in the active mask, and turns on all the LEDs\r
                 *  specified in both the LED and active masks.\r
                 *  \param[in] LEDMask     Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)\r
                 *  \param[in] ActiveMask  Mask of whether the LEDs in the LED mask should be turned on or off\r
                 */\r
-               static inline void LEDs_ChangeLEDs(const uintN_t LEDMask, const uintN_t ActiveMask);\r
+               static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask);\r
                \r
                /** Toggles all LEDs in the LED mask, leaving all others in their current states.\r
                 *\r
                 *  \param[in] LEDMask Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)\r
                 */\r
-               static inline void LEDs_ToggleLEDs(const uintN_t LEDMask);\r
+               static inline void LEDs_ToggleLEDs(const uint8_t LEDMask);\r
 \r
                /** Returns the status of all the board LEDs; set LED masks in the return value indicate that the\r
                 *  corresponding LED is on.\r
                 *\r
                 *  \return Mask of the board LEDs which are currently turned on\r
                 */\r
-               static inline uintN_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;\r
+               static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;\r
        #endif\r
 \r
 #endif\r
index e33aa86..d095d6e 100644 (file)
                                PORTE |=  (LEDS_PORTE_LEDS << LEDS_PORTE_MASK_SHIFT);\r
                        }\r
                        \r
-                       static inline void LEDs_TurnOnLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTD |=  (LEDMask & LEDS_LED1);\r
                                PORTD &= ~(LEDMask & LEDS_LED2);                        \r
                                PORTE &= ~((LEDMask & LEDS_PORTE_LEDS) << LEDS_PORTE_MASK_SHIFT);\r
                        }\r
 \r
-                       static inline void LEDs_TurnOffLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTD &= ~(LEDMask & LEDS_LED1);\r
                                PORTD |=  (LEDMask & LEDS_LED2);\r
                                PORTE |=  ((LEDMask & LEDS_PORTE_LEDS) << LEDS_PORTE_MASK_SHIFT);\r
                        }\r
 \r
-                       static inline void LEDs_SetAllLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTD = (((PORTD & ~LEDS_LED1) |  (LEDMask & LEDS_LED1)) |\r
                                         ((PORTD |  LEDS_LED2) & ~(LEDMask & LEDS_LED2)));\r
                                        ~((LEDMask & LEDS_PORTE_LEDS) << LEDS_PORTE_MASK_SHIFT));\r
                        }\r
                        \r
-                       static inline void LEDs_ChangeLEDs(const uintN_t LEDMask, const uintN_t ActiveMask)\r
+                       static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask)\r
                        {\r
                                PORTD = (((PORTD & ~(LEDMask & LEDS_LED1)) |  (ActiveMask & LEDS_LED1)) |\r
                                         ((PORTD |  (LEDMask & LEDS_LED2)) & ~(ActiveMask & LEDS_LED2)));\r
                                        ~((ActiveMask & LEDS_PORTE_LEDS) << LEDS_PORTE_MASK_SHIFT));\r
                        }\r
                        \r
-                       static inline void LEDs_ToggleLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTD = (PORTD ^ (LEDMask & LEDS_PORTD_LEDS));\r
                                PORTE = (PORTE ^ ((LEDMask & LEDS_PORTE_LEDS) << LEDS_PORTE_MASK_SHIFT));\r
                        }\r
 \r
+                       static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;\r
                        static inline uint8_t LEDs_GetLEDs(void)\r
                        {\r
                                return (((PORTD & LEDS_LED1) | (~PORTD & LEDS_LED2)) |\r
index e70822e..f3dccaf 100644 (file)
@@ -85,7 +85,8 @@
                                PORTE |=  BUTTONS_BUTTON1;\r
                        }\r
 \r
-                       static inline uintN_t Buttons_GetStatus(void)\r
+                       static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;\r
+                       static inline uint8_t Buttons_GetStatus(void)\r
                        {\r
                                return ((PINE & BUTTONS_BUTTON1) ^ BUTTONS_BUTTON1);\r
                        }\r
index aab650d..6358f95 100644 (file)
                                PORTE |= JOY_EMASK;                             \r
                        }\r
                        \r
-                       static inline uintN_t Joystick_GetStatus(void)\r
+                       static inline uint8_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT;\r
+                       static inline uint8_t Joystick_GetStatus(void)\r
                        {\r
                                return (((uint8_t)~PINB & JOY_BMASK) | (((uint8_t)~PINE & JOY_EMASK) >> 1));\r
                        }\r
index 1f2e9a2..b54a8c9 100644 (file)
                                PORTD &= ~LEDS_ALL_LEDS;\r
                        }\r
                        \r
-                       static inline void LEDs_TurnOnLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTD |= LEDMask;\r
                        }\r
 \r
-                       static inline void LEDs_TurnOffLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTD &= ~LEDMask;\r
                        }\r
 \r
-                       static inline void LEDs_SetAllLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTD = ((PORTD & ~LEDS_ALL_LEDS) | LEDMask);\r
                        }\r
                        \r
-                       static inline void LEDs_ChangeLEDs(const uintN_t LEDMask, const uintN_t ActiveMask)\r
+                       static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask)\r
                        {\r
                                PORTD = ((PORTD & ~LEDMask) | ActiveMask);\r
                        }\r
                        \r
-                       static inline void LEDs_ToggleLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTD = (PORTD ^ (LEDMask & LEDS_ALL_LEDS));\r
                        }\r
 \r
-                       static inline uintN_t LEDs_GetLEDs(void)\r
+                       static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;\r
+                       static inline uint8_t LEDs_GetLEDs(void)\r
                        {\r
                                return (PORTD & LEDS_ALL_LEDS);\r
                        }\r
index 56af91f..f480560 100644 (file)
@@ -85,8 +85,8 @@
                                PORTD |=  BUTTONS_BUTTON1;\r
                        }\r
 \r
-                       static inline uintN_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;\r
-                       static inline uintN_t Buttons_GetStatus(void)\r
+                       static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;\r
+                       static inline uint8_t Buttons_GetStatus(void)\r
                        {\r
                                return ((PIND & BUTTONS_BUTTON1) ^ BUTTONS_BUTTON1);\r
                        }\r
index f17e280..b095536 100644 (file)
@@ -97,8 +97,8 @@
                                PORTB |= JOY_BMASK;\r
                        }\r
                        \r
-                       static inline uintN_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT;\r
-                       static inline uintN_t Joystick_GetStatus(void)\r
+                       static inline uint8_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT;\r
+                       static inline uint8_t Joystick_GetStatus(void)\r
                        {\r
                                return ((uint8_t)~PINB & JOY_BMASK);\r
                        }\r
index fdae8f5..d1ac493 100644 (file)
                                PORTD &= ~LEDS_ALL_LEDS;\r
                        }\r
                        \r
-                       static inline void LEDs_TurnOnLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTD |= LEDMask;\r
                        }\r
 \r
-                       static inline void LEDs_TurnOffLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTD &= ~LEDMask;\r
                        }\r
 \r
-                       static inline void LEDs_SetAllLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTD = ((PORTD & ~LEDS_ALL_LEDS) | LEDMask);\r
                        }\r
                        \r
-                       static inline void LEDs_ChangeLEDs(const uintN_t LEDMask, const uintN_t ActiveMask)\r
+                       static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask)\r
                        {\r
                                PORTD = ((PORTD & ~(LEDMask & LEDS_ALL_LEDS)) | (ActiveMask & LEDS_ALL_LEDS));\r
                        }\r
                        \r
-                       static inline void LEDs_ToggleLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTD = (PORTD ^ (LEDMask & LEDS_ALL_LEDS));\r
                        }\r
                        \r
-                       static inline uintN_t LEDs_GetLEDs(void)\r
+                       static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;\r
+                       static inline uint8_t LEDs_GetLEDs(void)\r
                        {\r
                                return (PORTD & LEDS_ALL_LEDS);\r
                        }\r
index 09d7050..ea12bf7 100644 (file)
@@ -47,25 +47,14 @@ int8_t Temperature_GetTemperature(void)
 {\r
        uint16_t Temp_ADC = ADC_GetChannelReading(ADC_REFERENCE_AVCC | ADC_RIGHT_ADJUSTED | TEMP_ADC_CHANNEL_MASK);\r
 \r
-       #if defined(__AVR32__)\r
-       if (Temp_ADC > Temperature_Lookup[0])\r
-         return TEMP_MIN_TEMP; \r
-\r
-       for (uint16_t Index = 0; Index < TEMP_TABLE_SIZE; Index++)\r
-       {\r
-               if (Temp_ADC > Temperature_Lookup[Index])\r
-                 return (Index + TEMP_TABLE_OFFSET);\r
-       }\r
-       #elif defined(__AVR__)\r
        if (Temp_ADC > pgm_read_word(&Temperature_Lookup[0]))\r
-         return TEMP_MIN_TEMP; \r
+         return TEMP_MIN_TEMP;\r
 \r
        for (uint16_t Index = 0; Index < TEMP_TABLE_SIZE; Index++)\r
        {\r
                if (Temp_ADC > pgm_read_word(&Temperature_Lookup[Index]))\r
                  return (Index + TEMP_TABLE_OFFSET);\r
        }\r
-       #endif\r
 \r
        return TEMP_MAX_TEMP;\r
 }\r
index 8700839..7a5af36 100644 (file)
 #define __TEMPERATURE_H__\r
 \r
        /* Includes: */\r
-               #if defined(__AVR32__)\r
-                       #include <avr32/io.h>\r
-                       #include <stdint.h>\r
-               #elif defined(__AVR__)\r
-                       #include <avr/io.h>\r
-                       #include <avr/pgmspace.h>\r
-               #endif\r
+               #include <avr/pgmspace.h>\r
 \r
                #include "../../Common/Common.h"\r
                #include "../Peripheral/ADC.h"\r
index 471a19a..db1391c 100644 (file)
@@ -79,8 +79,8 @@
                                PORTE |=  BUTTONS_BUTTON1;\r
                        }\r
 \r
-                       static inline uintN_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;\r
-                       static inline uintN_t Buttons_GetStatus(void)\r
+                       static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;\r
+                       static inline uint8_t Buttons_GetStatus(void)\r
                        {\r
                                return ((PINE & BUTTONS_BUTTON1) ^ BUTTONS_BUTTON1);\r
                        }\r
index b6dd8d1..b082991 100644 (file)
                                PORTE |= JOY_EMASK;                             \r
                        }\r
                        \r
-                       static inline uintN_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT;\r
-                       static inline uintN_t Joystick_GetStatus(void)\r
+                       static inline uint8_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT;\r
+                       static inline uint8_t Joystick_GetStatus(void)\r
                        {\r
                                return (((uint8_t)~PINB & JOY_BMASK) | (((uint8_t)~PINE & JOY_EMASK) >> 1));\r
                        }\r
index 0864be8..e1a5b23 100644 (file)
                                PORTD &= ~LEDS_ALL_LEDS;\r
                        }\r
                        \r
-                       static inline void LEDs_TurnOnLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTD |= LEDMask;\r
                        }\r
 \r
-                       static inline void LEDs_TurnOffLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTD &= ~LEDMask;\r
                        }\r
 \r
-                       static inline void LEDs_SetAllLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTD = ((PORTD & ~LEDS_ALL_LEDS) | LEDMask);\r
                        }\r
                        \r
-                       static inline void LEDs_ChangeLEDs(const uintN_t LEDMask, const uintN_t ActiveMask)\r
+                       static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask)\r
                        {\r
                                PORTD = ((PORTD & ~LEDMask) | ActiveMask);\r
                        }\r
                        \r
-                       static inline void LEDs_ToggleLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTD = (PORTD ^ (LEDMask & LEDS_ALL_LEDS));\r
                        }\r
                        \r
-                       static inline uintN_t LEDs_GetLEDs(void)\r
+                       static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;\r
+                       static inline uint8_t LEDs_GetLEDs(void)\r
                        {\r
                                return (PORTD & LEDS_ALL_LEDS);\r
                        }\r
index 2c80aa7..add868d 100644 (file)
                                PORTB |= LEDS_ALL_LEDS;\r
                        }\r
                        \r
-                       static inline void LEDs_TurnOnLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTB &= ~LEDMask;\r
                        }\r
 \r
-                       static inline void LEDs_TurnOffLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTB |= LEDMask;\r
                        }\r
 \r
-                       static inline void LEDs_SetAllLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTB = ((PORTB | LEDS_ALL_LEDS) & ~LEDMask);\r
                        }\r
                        \r
-                       static inline void LEDs_ChangeLEDs(const uintN_t LEDMask, const uintN_t ActiveMask)\r
+                       static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask)\r
                        {\r
                                PORTB = ((PORTB | (LEDMask & LEDS_ALL_LEDS)) & (~ActiveMask & LEDS_ALL_LEDS));\r
                        }\r
                        \r
-                       static inline void LEDs_ToggleLEDs(const uintN_t LEDMask)\r
+                       static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)\r
                        {\r
                                PORTD = (PORTB ^ (LEDMask & LEDS_ALL_LEDS));\r
                        }\r
                        \r
-                       static inline uintN_t LEDs_GetLEDs(void)\r
+                       static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;\r
+                       static inline uint8_t LEDs_GetLEDs(void)\r
                        {\r
                                return (~PORTB & LEDS_ALL_LEDS);\r
                        }\r
index 533f4d2..9823643 100644 (file)
        #endif\r
 \r
        /* Includes: */\r
-               #include "../../Common/Common.h"                \r
-\r
                #if (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB646__) || \\r
                     defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__) || \\r
                         defined(__AVR_ATmega16U4__)  || defined(__AVR_ATmega32U4__) || \\r
                         defined(__AVR_ATmega32U6__))\r
-                       #include "AVR8/ADC.h"\r
+                       #include "AVRU4U6U7/ADC.h"\r
                #else\r
                        #error "ADC is not available for the currently selected AVR model."\r
                #endif\r
diff --git a/LUFA/Drivers/Peripheral/AVR32/SPI.h b/LUFA/Drivers/Peripheral/AVR32/SPI.h
deleted file mode 100644 (file)
index 379ce7f..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-/*\r
-             LUFA Library\r
-     Copyright (C) Dean Camera, 2010.\r
-              \r
-  dean [at] fourwalledcubicle [dot] com\r
-      www.fourwalledcubicle.com\r
-*/\r
-\r
-/*\r
-  Copyright 2010  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
- *\r
- *  SPI driver for the 32-bit AVRs.\r
- *\r
- *  \note This file should not be included directly. It is automatically included as needed by the SPI driver\r
- *        dispatch header located in LUFA/Drivers/Peripheral/SPI.h.\r
- */\r
\r
-/** \ingroup Group_SPI\r
- *  @defgroup Group_SPI_AVR32 32-Bit AVR SPI Driver\r
- *\r
- *  SPI driver for the 32-bit AVRs.\r
- *\r
- *  \note This file should not be included directly. It is automatically included as needed by the ADC driver\r
- *        dispatch header located in LUFA/Drivers/Peripheral/SPI.h.\r
- *\r
- *  @{\r
- */\r
-\r
-#ifndef __SPI_AVR32_H__\r
-#define __SPI_AVR32_H__\r
-\r
-       /* Includes: */\r
-               #include <avr32/io.h>\r
-               #include <stdbool.h>\r
-\r
-       /* Preprocessor Checks: */\r
-               #if !defined(__INCLUDE_FROM_SPI_H)\r
-                       #error Do not include this file directly. Include LUFA/Drivers/Peripheral/SPI.h instead.\r
-               #endif\r
-\r
-       /* Enable C linkage for C++ Compilers: */\r
-               #if defined(__cplusplus)\r
-                       extern "C" {\r
-               #endif\r
-       \r
-       /* Public Interface - May be used in end-application: */\r
-               /* Macros: */\r
-                       /** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 1. */\r
-                       #define SPI_SPEED_FCPU_DIV_1           0\r
-\r
-                       /** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 32. */\r
-                       #define SPI_SPEED_FCPU_DIV_32          AVR32_SPI_MR_FDIV_MASK\r
-                       \r
-                       /** SPI chip selection mode for direct peripheral-to-CS pin connections. */\r
-                       #define SPI_CS_4BITDECODER             AVR32_SPI_MR_PSDEC_MASK\r
-                       \r
-                       /** SPI chip selection mode for peripheral CS pin connections through a 4-bit decoder. */\r
-                       #define SPI_CS_DIRECT                  0\r
-                       \r
-                       /** SPI mode mask for SPI_Init(). Indicates that the SPI interface should be initialized into slave mode. */\r
-                       #define SPI_MODE_SLAVE                 0\r
-\r
-                       /** SPI mode mask for SPI_Init(). Indicates that the SPI interface should be initialized into master mode. */\r
-                       #define SPI_MODE_MASTER                AVR32_SPI_MR_MSTR_MASK\r
-\r
-               /* Inline Functions: */\r
-                       /** Initialises the SPI subsystem, ready for transfers. Must be called before calling any other\r
-                        *  SPI routines.\r
-                        *\r
-                        *  \note The individual AVR32 chip select control registers are left at their defaults; it is up to the user\r
-                        *        to configure these seperately once the SPI module has been initialized.\r
-                        *\r
-                        *  \note The physical GPIO pins for the AVR32's SPI are not altered; it is up to the user to\r
-                        *        configure these seperately to connect the SPI module to the desired GPIO pins via the\r
-                        *        GPIO MUX registers.\r
-                        *\r
-                        *  \param[in] SPIOptions  SPI Options, a mask consisting of one of each of the SPI_SPEED_*,\r
-                        *                         SPI_CS_* and SPI_MODE_* masks\r
-                        */\r
-                       static inline void SPI_Init(const uintN_t SPIOptions)\r
-                       {\r
-                               AVR32_PM.pbamask = (1 << 5);\r
-\r
-                               AVR32_SPI.CR.swrst = true;\r
-                               AVR32_SPI.CR.spien = true;\r
-                               AVR32_SPI.mr = SPIOptions;\r
-                       }\r
-\r
-                       /** Turns off the SPI driver, disabling and returning used hardware to their default configuration. */\r
-                       static inline void SPI_ShutDown(void)\r
-                       {\r
-                               AVR32_SPI.cr = AVR32_SPI_CR_SPIDIS_MASK;\r
-\r
-                               AVR32_PM.pbamask &= ~(1 << 5);\r
-                       }\r
-                       \r
-                       /** Sends and receives a transfer through the SPI interface, blocking until the transfer is complete.\r
-                        *  The width of the data that is transferred is dependant on the settings of the currently selected\r
-                        *  peripheral.\r
-                        *\r
-                        *  \param[in] Data  Data to send through the SPI interface\r
-                        *\r
-                        *  \return Response data from the attached SPI device\r
-                        */\r
-                       static inline uint16_t SPI_Transfer(const uint16_t Data) ATTR_ALWAYS_INLINE;\r
-                       static inline uint16_t SPI_Transfer(const uint16_t Data)\r
-                       {\r
-                               while (!(AVR32_SPI.SR.tdre));\r
-                               AVR32_SPI.TDR.td = Data;\r
-\r
-                               while ((AVR32_SPI.sr & (AVR32_SPI_SR_RDRF_MASK | AVR32_SPI_SR_TXEMPTY_MASK)) !=\r
-                                                      (AVR32_SPI_SR_RDRF_MASK | AVR32_SPI_SR_TXEMPTY_MASK));\r
-                               return AVR32_SPI.RDR.rd;\r
-                       }\r
-\r
-                       /** Sends a transfer through the SPI interface, blocking until the transfer is complete. The response\r
-                        *  data sent to from the attached SPI device is ignored. The width of the data that is transferred is\r
-                        *  dependant on the settings of the currently selected peripheral.\r
-                        *\r
-                        *  \param[in] Data  Data to send through the SPI interface\r
-                        */\r
-                       static inline void SPI_Send(const uint16_t Data) ATTR_ALWAYS_INLINE;\r
-                       static inline void SPI_Send(const uint16_t Data)\r
-                       {\r
-                               while (!(AVR32_SPI.SR.tdre));\r
-                               AVR32_SPI.TDR.td = Data;\r
-                       }\r
-\r
-                       /** Sends a dummy transfer through the SPI interface, blocking until the transfer is complete. The response\r
-                        *  data from the attached SPI device is returned. The width of the data that is transferred is dependant on\r
-                        *  the settings of the currently selected peripheral.\r
-                        *\r
-                        *  \return The response data from the attached SPI device\r
-                        */\r
-                       static inline uint16_t SPI_Receive(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;\r
-                       static inline uint16_t SPI_Receive(void)\r
-                       {\r
-                               while (!(AVR32_SPI.SR.tdre));\r
-                               AVR32_SPI.TDR.td = 0x0000;\r
-\r
-                               while ((AVR32_SPI.sr & (AVR32_SPI_SR_RDRF_MASK | AVR32_SPI_SR_TXEMPTY_MASK)) !=\r
-                                                      (AVR32_SPI_SR_RDRF_MASK | AVR32_SPI_SR_TXEMPTY_MASK));\r
-                               return AVR32_SPI.RDR.rd;\r
-                       }\r
-\r
-       /* Disable C linkage for C++ Compilers: */\r
-               #if defined(__cplusplus)\r
-                       }\r
-               #endif\r
-               \r
-#endif\r
-\r
-/** @} */\r
diff --git a/LUFA/Drivers/Peripheral/AVR8/ADC.h b/LUFA/Drivers/Peripheral/AVR8/ADC.h
deleted file mode 100644 (file)
index eac7f9f..0000000
+++ /dev/null
@@ -1,320 +0,0 @@
-/*\r
-             LUFA Library\r
-     Copyright (C) Dean Camera, 2010.\r
-              \r
-  dean [at] fourwalledcubicle [dot] com\r
-      www.fourwalledcubicle.com\r
-*/\r
-\r
-/*\r
-  Copyright 2010  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
- *\r
- *  ADC driver for the 8-Bit AVRs containing a hardware ADC module.\r
- *\r
- *  \note This file should not be included directly. It is automatically included as needed by the ADC driver\r
- *        dispatch header located in LUFA/Drivers/Peripheral/ADC.h.\r
- */\r
-\r
-/** \ingroup Group_ADC\r
- *  @defgroup Group_ADC_AVR8 8-Bit AVR ADC Driver\r
- *\r
- *  ADC driver for 8-Bit AVRs containing a hardware ADC module.\r
- *\r
- *  \note This file should not be included directly. It is automatically included as needed by the ADC driver\r
- *        dispatch header located in LUFA/Drivers/Peripheral/ADC.h.\r
- *\r
- *  @{\r
- */\r
\r
-#ifndef __ADC_AVR8_H__\r
-#define __ADC_AVR8_H__\r
-\r
-       /* Includes: */\r
-               #include <avr/io.h>\r
-               #include <stdbool.h>\r
-               \r
-       /* Enable C linkage for C++ Compilers: */\r
-               #if defined(__cplusplus)\r
-                       extern "C" {\r
-               #endif\r
-\r
-       /* Preprocessor Checks: */\r
-               #if !defined(__INCLUDE_FROM_ADC_H)\r
-                       #error Do not include this file directly. Include LUFA/Drivers/Peripheral/ADC.h instead.\r
-               #endif\r
-\r
-       /* Public Interface - May be used in end-application: */\r
-               /* Macros: */                   \r
-                       /** Reference mask, for using the voltage present at the AVR's AREF pin for the ADC reference. */\r
-                       #define  ADC_REFERENCE_AREF              0\r
-\r
-                       /** Reference mask, for using the voltage present at the AVR's AVCC pin for the ADC reference. */\r
-                       #define  ADC_REFERENCE_AVCC              (1 << REFS0)\r
-\r
-                       /** Reference mask, for using the internally generated 2.56V reference voltage as the ADC reference. */\r
-                       #define  ADC_REFERENCE_INT2560MV         ((1 << REFS1)| (1 << REFS0))\r
-                       \r
-                       /** Left-adjusts the 10-bit ADC result, so that the upper 8 bits of the value returned by the\r
-                        *  ADC_GetResult() macro contain the 8 most significant bits of the result. */\r
-                       #define  ADC_LEFT_ADJUSTED               (1 << ADLAR)\r
-\r
-                       /** Right-adjusts the 10-bit ADC result, so that the lower 8 bits of the value returned by the\r
-                        *  ADC_GetResult() macro contain the 8 least significant bits of the result. */\r
-                       #define  ADC_RIGHT_ADJUSTED              (0 << ADLAR)\r
-                       \r
-                       /** Sets the ADC mode to free running, so that conversions take place continuously as fast as the ADC\r
-                        *  is capable of at the given input clock speed. */\r
-                       #define  ADC_FREE_RUNNING                (1 << ADATE)\r
-\r
-                       /** Sets the ADC mode to single conversion, so that only a single conversion will take place before\r
-                        *  the ADC returns to idle. */\r
-                       #define  ADC_SINGLE_CONVERSION           (0 << ADATE)\r
-                       \r
-                       /** Sets the ADC input clock to prescale by a factor of 2 the AVR's system clock. */\r
-                       #define  ADC_PRESCALE_2                  (1 << ADPS0)\r
-\r
-                       /** Sets the ADC input clock to prescale by a factor of 4 the AVR's system clock. */\r
-                       #define  ADC_PRESCALE_4                  (1 << ADPS1)\r
-\r
-                       /** Sets the ADC input clock to prescale by a factor of 8 the AVR's system clock. */\r
-                       #define  ADC_PRESCALE_8                  ((1 << ADPS0) | (1 << ADPS1))\r
-\r
-                       /** Sets the ADC input clock to prescale by a factor of 16 the AVR's system clock. */\r
-                       #define  ADC_PRESCALE_16                 (1 << ADPS2)\r
-\r
-                       /** Sets the ADC input clock to prescale by a factor of 32 the AVR's system clock. */\r
-                       #define  ADC_PRESCALE_32                 ((1 << ADPS2) | (1 << ADPS0))\r
-\r
-                       /** Sets the ADC input clock to prescale by a factor of 64 the AVR's system clock. */\r
-                       #define  ADC_PRESCALE_64                 ((1 << ADPS2) | (1 << ADPS1))\r
-\r
-                       /** Sets the ADC input clock to prescale by a factor of 128 the AVR's system clock. */\r
-                       #define  ADC_PRESCALE_128                ((1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0))\r
-                       \r
-                       //@{\r
-                       /** MUX mask define for the ADC0 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading. */\r
-                       #define  ADC_CHANNEL0                    0x00\r
-\r
-                       /** MUX mask define for the ADC1 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading. */\r
-                       #define  ADC_CHANNEL1                    0x01\r
-\r
-                       #if !(defined(__AVR_ATmega16U4__)  || defined(__AVR_ATmega32U4__) || defined(__DOXYGEN__))\r
-                               /** MUX mask define for the ADC2 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading.\r
-                                *\r
-                                *  \note Note available on all AVR models.\r
-                                */\r
-                               #define  ADC_CHANNEL2                    0x02\r
-\r
-                               /** MUX mask define for the ADC3 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading.\r
-                                *\r
-                                *  \note Note available on all AVR models.\r
-                                */\r
-                               #define  ADC_CHANNEL3                    0x03\r
-                       #endif\r
-\r
-                       /** MUX mask define for the ADC4 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading. */\r
-                       #define  ADC_CHANNEL4                    0x04\r
-\r
-                       /** MUX mask define for the ADC5 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading. */\r
-                       #define  ADC_CHANNEL5                    0x05\r
-\r
-                       /** MUX mask define for the ADC6 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading. */\r
-                       #define  ADC_CHANNEL6                    0x06\r
-\r
-                       /** MUX mask define for the ADC7 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading. */\r
-                       #define  ADC_CHANNEL7                    0x07\r
-\r
-                       /** MUX mask define for the internal 1.1V bandgap channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading. */\r
-                       #define  ADC_1100MV_BANDGAP              0x1E\r
-                       \r
-                       #if (defined(__AVR_ATmega16U4__)  || defined(__AVR_ATmega32U4__) || defined(__DOXYGEN__))\r
-                               /** MUX mask define for the ADC8 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading.\r
-                                *\r
-                                *  \note Note available on all AVR models.\r
-                                */\r
-                               #define  ADC_CHANNEL8                0x20\r
-\r
-                               /** MUX mask define for the ADC9 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading.\r
-                                *\r
-                                *  \note Note available on all AVR models.\r
-                                */\r
-                               #define  ADC_CHANNEL9                0x21\r
-\r
-                               /** MUX mask define for the ADC10 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading.\r
-                                *\r
-                                *  \note Note available on all AVR models.\r
-                                */\r
-                               #define  ADC_CHANNEL10               0x22\r
-\r
-                               /** MUX mask define for the ADC11 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading.\r
-                                *\r
-                                *  \note Note available on all AVR models.\r
-                                */\r
-                               #define  ADC_CHANNEL11               0x23\r
-\r
-                               /** MUX mask define for the ADC12 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading.\r
-                                *\r
-                                *  \note Note available on all AVR models.\r
-                                */\r
-                               #define  ADC_CHANNEL12               0x24\r
-\r
-                               /** MUX mask define for the ADC13 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading.\r
-                                *\r
-                                *  \note Note available on all AVR models.\r
-                                */\r
-                               #define  ADC_CHANNEL13               0x25\r
-\r
-                               /** MUX mask define for the internal temperature sensor channel of the ADC. See \ref ADC_StartReading and\r
-                                *  \ref ADC_GetChannelReading.\r
-                                *\r
-                                *  \note Note available on all AVR models.\r
-                                */\r
-                               #define  ADC_INT_TEMP_SENS           0x27                       \r
-                       #endif\r
-                       //@}\r
-               \r
-               /* Pseudo-Function Macros: */\r
-                       #if defined(__DOXYGEN__)\r
-                               /** Initializes the ADC, ready for conversions. This must be called before any other ADC operations.\r
-                                *  The "mode" parameter should be a mask comprised of a conversion mode (free running or single) and\r
-                                *  prescaler masks.\r
-                                *\r
-                                *  \param[in] Mode  Mask of ADC settings, including adjustment, prescale, mode and reference\r
-                                */\r
-                               static inline void ADC_Init(uint8_t Mode);\r
-\r
-                               /** Turns off the ADC. If this is called, any further ADC operations will require a call to\r
-                                *  \ref ADC_Init() before the ADC can be used again.\r
-                                */\r
-                               static inline void ADC_ShutDown(void);\r
-                               \r
-                               /** Indicates if the ADC is currently enabled.\r
-                                *\r
-                                *  \return Boolean true if the ADC subsystem is currently enabled, false otherwise.\r
-                                */\r
-                               static inline bool ADC_GetStatus(void);\r
-                               \r
-                               /** Indicates if the current ADC conversion is completed, or still in progress.\r
-                                *\r
-                                *  \return Boolean false if the reading is still taking place, or true if the conversion is\r
-                                *          complete and ready to be read out with \ref ADC_GetResult()\r
-                                */\r
-                               static inline bool ADC_IsReadingComplete(void);\r
-                               \r
-                               /** Retrieves the conversion value of the last completed ADC conversion.\r
-                                *\r
-                                *  \return The result of the last ADC conversion\r
-                                */\r
-                               static inline uint16_t ADC_GetResult(void);\r
-                       #else\r
-                               #define  ADC_Init(mode)          MACROS{ ADCSRA = ((1 << ADEN) | mode);         }MACROE\r
-\r
-                               #define  ADC_ShutDown()          MACROS{ ADCSRA = 0;                            }MACROE\r
-                               \r
-                               #define  ADC_GetStatus()               ((ADCSRA & (1 << ADEN)) ? true : false)\r
-\r
-                               #define  ADC_IsReadingComplete()        (ADCSRA & (1 << ADSC))\r
-                               \r
-                               #define  ADC_GetResult()                 ADC                    \r
-                       #endif\r
-                       \r
-               /* Inline Functions: */\r
-                       /** Configures the given ADC channel, ready for ADC conversions. This function sets the\r
-                        *  associated port pin as an input and disables the digital portion of the I/O to reduce\r
-                        *  power consumption.\r
-                        *\r
-                        *  \note This must only be called for ADC channels with are connected to a physical port\r
-                        *        pin of the AVR, denoted by its special alternative function ADCx.\r
-                        *\r
-                        *  \note The channel number must be specified as an integer, and NOT a ADC_CHANNELx mask.\r
-                        *\r
-                        *  \param[in] Channel  ADC channel number to set up for conversions\r
-                        */\r
-                       static inline void ADC_SetupChannel(const uint8_t Channel)\r
-                       {\r
-                               #if (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB646__) || \\r
-                                        defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__) || \\r
-                                        defined(__AVR_ATmega32U6__))                           \r
-                               DDRF  &= ~(1 << Channel);\r
-                               DIDR0 |=  (1 << Channel);\r
-                               #elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))\r
-                               if (Channel < 8)\r
-                               {\r
-                                       DDRF  &= ~(1 << Channel);\r
-                                       DIDR0 |=  (1 << Channel);\r
-                               }\r
-                               else if (Channel == 8)\r
-                               {\r
-                                       DDRD  &= ~(1 << 4);\r
-                                       DIDR2 |=  (1 << 0);\r
-                               }\r
-                               else if (Channel < 11)\r
-                               {\r
-                                       DDRD  &= ~(1 << (Channel - 3));\r
-                                       DIDR2 |=  (1 << (Channel - 8));\r
-                               }\r
-                               else\r
-                               {\r
-                                       DDRB  &= ~(1 << (Channel - 7));\r
-                                       DIDR2 |=  (1 << (Channel - 8));\r
-                               }\r
-                               #endif\r
-                       }\r
-                       \r
-                       /** Starts the reading of the given channel, but does not wait until the conversion has completed.\r
-                        *  Once executed, the conversion status can be determined via the \ref ADC_IsReadingComplete() macro and\r
-                        *  the result read via the \ref ADC_GetResult() macro.\r
-                        *\r
-                        *  \param[in] MUXMask  Mask comprising of an ADC channel mask, reference mask and adjustment mask\r
-                        */\r
-                       static inline void ADC_StartReading(const uint8_t MUXMask)\r
-                       {\r
-                               ADMUX = MUXMask;\r
-                       \r
-                               ADCSRA |= (1 << ADSC);\r
-                       }\r
-\r
-                       /** Performs a complete single reading from channel, including a polling spin-loop to wait for the\r
-                        *  conversion to complete, and the returning of the converted value.\r
-                        *\r
-                        *  \param[in] MUXMask  Mask comprising of an ADC channel mask, reference mask and adjustment mask\r
-                        */\r
-                       static inline uint16_t ADC_GetChannelReading(const uint8_t MUXMask) ATTR_WARN_UNUSED_RESULT;\r
-                       static inline uint16_t ADC_GetChannelReading(const uint8_t MUXMask)\r
-                       {\r
-                               ADC_StartReading(MUXMask);\r
-       \r
-                               while (!(ADC_IsReadingComplete()));\r
-       \r
-                               return ADC_GetResult();\r
-                       }\r
-\r
-       /* Disable C linkage for C++ Compilers: */\r
-               #if defined(__cplusplus)\r
-                       }\r
-               #endif\r
-               \r
-#endif\r
-\r
-/** @} */\r
diff --git a/LUFA/Drivers/Peripheral/AVR8/SPI.h b/LUFA/Drivers/Peripheral/AVR8/SPI.h
deleted file mode 100644 (file)
index 42ff8e7..0000000
+++ /dev/null
@@ -1,205 +0,0 @@
-/*\r
-             LUFA Library\r
-     Copyright (C) Dean Camera, 2010.\r
-              \r
-  dean [at] fourwalledcubicle [dot] com\r
-      www.fourwalledcubicle.com\r
-*/\r
-\r
-/*\r
-  Copyright 2010  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
- *\r
- *  SPI driver for the 8-bit AVRs.\r
- *\r
- *  \note This file should not be included directly. It is automatically included as needed by the SPI driver\r
- *        dispatch header located in LUFA/Drivers/Peripheral/SPI.h.\r
- */\r
\r
-/** \ingroup Group_SPI\r
- *  @defgroup Group_SPI_AVR8 8-Bit AVR SPI Driver\r
- *\r
- *  SPI driver for the 8-bit AVRs.\r
- *\r
- *  \note This file should not be included directly. It is automatically included as needed by the ADC driver\r
- *        dispatch header located in LUFA/Drivers/Peripheral/SPI.h.\r
- *\r
- *  @{\r
- */\r
-\r
-#ifndef __SPI_AVR8_H__\r
-#define __SPI_AVR8_H__\r
-\r
-       /* Includes: */\r
-               #include <avr/io.h>\r
-               #include <stdbool.h>\r
-\r
-       /* Preprocessor Checks: */\r
-               #if !defined(__INCLUDE_FROM_SPI_H)\r
-                       #error Do not include this file directly. Include LUFA/Drivers/Peripheral/SPI.h instead.\r
-               #endif\r
-\r
-       /* Enable C linkage for C++ Compilers: */\r
-               #if defined(__cplusplus)\r
-                       extern "C" {\r
-               #endif\r
-\r
-       /* Private Interface - For use in library only: */\r
-       #if !defined(__DOXYGEN__)\r
-               /* Macros: */\r
-                       #define SPI_USE_DOUBLESPEED            (1 << SPE)\r
-       #endif\r
-       \r
-       /* Public Interface - May be used in end-application: */\r
-               /* Macros: */\r
-                       /** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 2. */\r
-                       #define SPI_SPEED_FCPU_DIV_2           SPI_USE_DOUBLESPEED\r
-\r
-                       /** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 4. */\r
-                       #define SPI_SPEED_FCPU_DIV_4           0\r
-\r
-                       /** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 8. */\r
-                       #define SPI_SPEED_FCPU_DIV_8           (SPI_USE_DOUBLESPEED | (1 << SPR0))\r
-\r
-                       /** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 16. */\r
-                       #define SPI_SPEED_FCPU_DIV_16          (1 << SPR0)\r
-\r
-                       /** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 32. */\r
-                       #define SPI_SPEED_FCPU_DIV_32          (SPI_USE_DOUBLESPEED | (1 << SPR1))\r
-\r
-                       /** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 64. */\r
-                       #define SPI_SPEED_FCPU_DIV_64          (SPI_USE_DOUBLESPEED | (1 << SPR1) | (1 << SPR0))\r
-\r
-                       /** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 128. */\r
-                       #define SPI_SPEED_FCPU_DIV_128         ((1 << SPR1) | (1 << SPR0))\r
-                       \r
-                       /** SPI clock polarity mask for SPI_Init(). Indicates that the SCK should lead on the rising edge. */\r
-                       #define SPI_SCK_LEAD_RISING            (0 << CPOL)\r
-\r
-                       /** SPI clock polarity mask for SPI_Init(). Indicates that the SCK should lead on the falling edge. */\r
-                       #define SPI_SCK_LEAD_FALLING           (1 << CPOL)\r
-\r
-                       /** SPI data sample mode mask for SPI_Init(). Indicates that the data should sampled on the leading edge. */\r
-                       #define SPI_SAMPLE_LEADING             (0 << CPHA)\r
-\r
-                       /** SPI data sample mode mask for SPI_Init(). Indicates that the data should be sampled on the trailing edge. */\r
-                       #define SPI_SAMPLE_TRAILING            (1 << CPHA)\r
-                       \r
-                       /** SPI mode mask for SPI_Init(). Indicates that the SPI interface should be initialized into slave mode. */\r
-                       #define SPI_MODE_SLAVE                 (0 << MSTR)\r
-\r
-                       /** SPI mode mask for SPI_Init(). Indicates that the SPI interface should be initialized into master mode. */\r
-                       #define SPI_MODE_MASTER                (1 << MSTR)\r
-\r
-               /* Inline Functions: */\r
-                       /** Initialises the SPI subsystem, ready for transfers. Must be called before calling any other\r
-                        *  SPI routines.\r
-                        *\r
-                        *  \param[in] SPIOptions  SPI Options, a mask consisting of one of each of the SPI_SPEED_*,\r
-                        *                         SPI_SCK_*, SPI_SAMPLE_* and SPI_MODE_* masks\r
-                        */\r
-                       static inline void SPI_Init(const uintN_t SPIOptions)\r
-                       {\r
-                               DDRB  |= ((1 << 1) | (1 << 2));\r
-                               PORTB |= ((1 << 0) | (1 << 3));\r
-                               \r
-                               SPCR   = ((1 << SPE) | SPIOptions);\r
-                               \r
-                               if (SPIOptions & SPI_USE_DOUBLESPEED)\r
-                                 SPSR |= (1 << SPI2X);\r
-                               else\r
-                                 SPSR &= ~(1 << SPI2X);\r
-                       }\r
-                       \r
-                       /** Turns off the SPI driver, disabling and returning used hardware to their default configuration. */\r
-                       static inline void SPI_ShutDown(void)\r
-                       {\r
-                               DDRB  &= ~((1 << 1) | (1 << 2));\r
-                               PORTB &= ~((1 << 0) | (1 << 3));\r
-                               \r
-                               SPCR   = 0;\r
-                               SPSR   = 0;\r
-                       }\r
-                       \r
-                       /** Sends and receives a byte through the SPI interface, blocking until the transfer is complete.\r
-                        *\r
-                        *  \param[in] Data  Byte to send through the SPI interface\r
-                        *\r
-                        *  \return Response byte from the attached SPI device\r
-                        */\r
-                       static inline uint8_t SPI_Transfer(const uint8_t Data) ATTR_ALWAYS_INLINE;\r
-                       static inline uint8_t SPI_Transfer(const uint8_t Data)\r
-                       {\r
-                               SPDR = Data;\r
-                               while (!(SPSR & (1 << SPIF)));\r
-                               return SPDR;\r
-                       }\r
-\r
-                       /** Sends a byte through the SPI interface, blocking until the transfer is complete. The response\r
-                        *  byte sent to from the attached SPI device is ignored.\r
-                        *\r
-                        *  \param[in] Data  Byte to send through the SPI interface\r
-                        */\r
-                       static inline void SPI_Send(const uint8_t Data) ATTR_ALWAYS_INLINE;\r
-                       static inline void SPI_Send(const uint8_t Data)\r
-                       {\r
-                               SPDR = Data;\r
-                               while (!(SPSR & (1 << SPIF)));\r
-                       }\r
-\r
-                       /** Sends a dummy byte through the SPI interface, blocking until the transfer is complete. The response\r
-                        *  byte from the attached SPI device is returned.\r
-                        *\r
-                        *  \return The response byte from the attached SPI device\r
-                        */\r
-                       static inline uint8_t SPI_Receive(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;\r
-                       static inline uint8_t SPI_Receive(void)\r
-                       {\r
-                               SPDR = 0x00;\r
-                               while (!(SPSR & (1 << SPIF)));\r
-                               return SPDR;\r
-                       }\r
-       \r
-                       #if defined(__DOXYGEN__)\r
-                               /** Alias for \ref SPI_Transfer(), for compatibility with legacy LUFA applications. */\r
-                               static inline uint8_t SPI_TransferByte(const uint8_t Byte) ATTR_DEPRECATED;\r
-\r
-                               /** Alias for \ref SPI_Send(), for compatibility with legacy LUFA applications. */\r
-                               static inline void SPI_SendByte(const uint8_t Byte) ATTR_DEPRECATED;\r
-\r
-                               /** Alias for \ref SPI_Receive(), for compatibility with legacy LUFA applications. */\r
-                               static inline uint8_t SPI_ReceiveByte(void) ATTR_DEPRECATED;\r
-                       #else\r
-                               #define SPI_TransferByte(x)      SPI_Transfer(x)\r
-                               #define SPI_SendByte(x)          SPI_Send(x)\r
-                               #define SPI_ReceiveByte()        SPI_Receive()\r
-                       #endif\r
-\r
-       /* Disable C linkage for C++ Compilers: */\r
-               #if defined(__cplusplus)\r
-                       }\r
-               #endif\r
-               \r
-#endif\r
-\r
-/** @} */\r
diff --git a/LUFA/Drivers/Peripheral/AVR8/Serial.h b/LUFA/Drivers/Peripheral/AVR8/Serial.h
deleted file mode 100644 (file)
index 0421dea..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-/*\r
-             LUFA Library\r
-     Copyright (C) Dean Camera, 2010.\r
-              \r
-  dean [at] fourwalledcubicle [dot] com\r
-      www.fourwalledcubicle.com\r
-*/\r
-\r
-/*\r
-  Copyright 2010  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
- *\r
- *  ADC driver for the 8-bit AVRs.\r
- *\r
- *  \note This file should not be included directly. It is automatically included as needed by the USART driver\r
- *        dispatch header located in LUFA/Drivers/Peripheral/Serial.h.\r
- */\r
\r
-/** \ingroup Group_Serial\r
- *  @defgroup Group_Serial_AVR8 8-Bit AVR Serial Driver\r
- *\r
- *  Serial driver for the 8-bit AVRs.\r
- *\r
- *  \note This file should not be included directly. It is automatically included as needed by the ADC driver\r
- *        dispatch header located in LUFA/Drivers/Peripheral/USART.h.\r
- *\r
- *  @{\r
- */\r
\r
-#ifndef __SERIAL_AVR8_H__\r
-#define __SERIAL_AVR8_H__\r
-\r
-       /* Includes: */\r
-               #include <avr/io.h>\r
-               #include <avr/pgmspace.h>\r
-               #include <stdbool.h>\r
-               \r
-       /* Preprocessor Checks: */\r
-               #if !defined(__INCLUDE_FROM_SERIAL_H)\r
-                       #error Do not include this file directly. Include LUFA/Drivers/Peripheral/Serial.h instead.\r
-               #endif\r
-\r
-       /* Public Interface - May be used in end-application: */\r
-               /* Macros: */\r
-                       /** Macro for calculating the baud value from a given baud rate when the U2X (double speed) bit is\r
-                        *  not set.\r
-                        */\r
-                       #define SERIAL_UBBRVAL(baud)    ((((F_CPU / 16) + (baud / 2)) / (baud)) - 1)\r
-\r
-                       /** Macro for calculating the baud value from a given baud rate when the U2X (double speed) bit is\r
-                        *  set.\r
-                        */\r
-                       #define SERIAL_2X_UBBRVAL(baud) ((((F_CPU / 8) + (baud / 2)) / (baud)) - 1)\r
-\r
-               /* Pseudo-Function Macros: */\r
-                       #if defined(__DOXYGEN__)\r
-                               /** Indicates whether a character has been received through the USART.\r
-                                *\r
-                                *  \return Boolean true if a character has been received, false otherwise\r
-                                */\r
-                               static inline bool Serial_IsCharReceived(void);\r
-                       #else\r
-                               #define Serial_IsCharReceived() ((UCSR1A & (1 << RXC1)) ? true : false)\r
-                       #endif\r
-\r
-               /* Inline Functions: */\r
-                       /** Initializes the USART, ready for serial data transmission and reception. This initializes the interface to\r
-                        *  standard 8-bit, no parity, 1 stop bit settings suitable for most applications.\r
-                        *\r
-                        *  \param[in] BaudRate     Serial baud rate, in bits per second\r
-                        *  \param[in] DoubleSpeed  Enables double speed mode when set, halving the sample time to double the baud rate\r
-                        */\r
-                       static inline void Serial_Init(const uint32_t BaudRate, const bool DoubleSpeed)\r
-                       {\r
-                               UCSR1A = (DoubleSpeed ? (1 << U2X1) : 0);\r
-                               UCSR1B = ((1 << TXEN1)  | (1 << RXEN1));\r
-                               UCSR1C = ((1 << UCSZ11) | (1 << UCSZ10));\r
-                               \r
-                               DDRD  |= (1 << 3);      \r
-                               PORTD |= (1 << 2);\r
-                               \r
-                               UBRR1  = (DoubleSpeed ? SERIAL_2X_UBBRVAL(BaudRate) : SERIAL_UBBRVAL(BaudRate));\r
-                       }\r
-\r
-                       /** Turns off the USART driver, disabling and returning used hardware to their default configuration. */\r
-                       static inline void Serial_ShutDown(void)\r
-                       {\r
-                               UCSR1A = 0;\r
-                               UCSR1B = 0;\r
-                               UCSR1C = 0;\r
-                               \r
-                               DDRD  &= ~(1 << 3);     \r
-                               PORTD &= ~(1 << 2);\r
-                               \r
-                               UBRR1  = 0;\r
-                       }\r
-                       \r
-                       /** Transmits a given byte through the USART.\r
-                        *\r
-                        *  \param[in] DataByte  Byte to transmit through the USART\r
-                        */\r
-                       static inline void Serial_TxByte(const char DataByte)\r
-                       {\r
-                               while (!(UCSR1A & (1 << UDRE1)));\r
-                               UDR1 = DataByte;\r
-                       }\r
-\r
-                       /** Receives a byte from the USART.\r
-                        *\r
-                        *  \return Byte received from the USART\r
-                        */\r
-                       static inline uint8_t Serial_RxByte(void)\r
-                       {\r
-                               while (!(UCSR1A & (1 << RXC1)));\r
-                               return UDR1; \r
-                       }\r
-\r
-       /* Disable C linkage for C++ Compilers: */\r
-               #if defined(__cplusplus)\r
-                       }\r
-               #endif\r
-               \r
-#endif\r
-\r
-/** @} */\r
diff --git a/LUFA/Drivers/Peripheral/AVR8/TWI.h b/LUFA/Drivers/Peripheral/AVR8/TWI.h
deleted file mode 100644 (file)
index 43f70d9..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/*\r
-             LUFA Library\r
-     Copyright (C) Dean Camera, 2010.\r
-              \r
-  dean [at] fourwalledcubicle [dot] com\r
-      www.fourwalledcubicle.com\r
-*/\r
-\r
-/*\r
-  Copyright 2010  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
- *\r
- *  Master mode TWI driver for the 8-Bit AVRs containing a hardware TWI module.\r
- *\r
- *  \note This file should not be included directly. It is automatically included as needed by the TWI driver\r
- *        dispatch header located in LUFA/Drivers/Peripheral/TWI.h.\r
- */\r
-\r
-/** \ingroup Group_TWI\r
- *  @defgroup Group_TWI_AVR8 8-Bit AVR TWI Driver\r
- *\r
- *  Master mode TWI driver for the 8-Bit AVRs containing a hardware TWI module.\r
- *\r
- *  \note This file should not be included directly. It is automatically included as needed by the TWI driver\r
- *        dispatch header located in LUFA/Drivers/Peripheral/TWI.h.\r
- *\r
- *  @{\r
- */\r
-\r
-#ifndef __TWI_AVR8_H__\r
-#define __TWI_AVR8_H__\r
-\r
-       /* Includes: */\r
-               #include <avr/io.h>\r
-               #include <stdbool.h>\r
-               #include <util/twi.h>\r
-               \r
-       /* Enable C linkage for C++ Compilers: */\r
-               #if defined(__cplusplus)\r
-                       extern "C" {\r
-               #endif\r
-\r
-       /* Preprocessor Checks: */\r
-               #if !defined(__INCLUDE_FROM_TWI_H)\r
-                       #error Do not include this file directly. Include LUFA/Drivers/Peripheral/TWI.h instead.\r
-               #endif\r
-\r
-       /* Public Interface - May be used in end-application: */\r
-               /* Pseudo-Function Macros: */\r
-                       #if defined(__DOXYGEN__)\r
-                               /** Initializes the TWI hardware into master mode, ready for data transmission and reception. This must be\r
-                                *  before any other TWI operations.\r
-                                */\r
-                               static inline void TWI_Init(void);\r
-                               \r
-                               /** Turns off the TWI driver hardware. If this is called, any further TWI operations will require a call to\r
-                                *  \ref TWI_Init() before the TWI can be used again.\r
-                                */                             \r
-                               static inline void TWI_ShutDown(void);\r
-                       #else\r
-                               #define TWI_Init()        MACROS{ TWCR |=  (1 << TWEN); }MACROE\r
-                               #define TWI_ShutDown()    MACROS{ TWCR &= ~(1 << TWEN); }MACROE\r
-                       #endif\r
-\r
-               /* Inline Functions: */\r
-                       /** Sends a TWI STOP onto the TWI bus, terminating communication with the currently addressed device. */\r
-                       static inline void TWI_StopTransmission(void)\r
-                       {\r
-                               TWCR = ((1 << TWINT) | (1 << TWSTO) | (1 << TWEN));\r
-                       }\r
-\r
-                       /** Sends a byte to the currently addressed device on the TWI bus.\r
-                        *\r
-                        *  \param[in] Byte  Byte to send to the currently addressed device\r
-                        *\r
-                        *  \return Boolean true if the recipient ACKed the byte, false otherwise\r
-                        */\r
-                       static inline bool TWI_SendByte(uint8_t Byte)\r
-                       {\r
-                               TWDR = Byte;\r
-                               TWCR = ((1 << TWINT) | (1 << TWEN));    \r
-                               while (!(TWCR & (1 << TWINT)));\r
-\r
-                               return ((TWSR & TW_STATUS_MASK) == TW_MT_DATA_ACK);\r
-                       }\r
-\r
-                       /** Receives a byte from the currently addressed device on the TWI bus.\r
-                        *\r
-                        *  \param[in] Byte  Location where the read byte is to be stored\r
-                        *  \param[in] LastByte  Indicates if the byte should be ACKed if false, NAKed if true\r
-                        *\r
-                        *  \return Boolean true if the byte reception sucessfully completed, false otherwise\r
-                        */\r
-                       static inline bool TWI_ReceiveByte(uint8_t* Byte, bool LastByte)\r
-                       {\r
-                               uint8_t TWCRMask = ((1 << TWINT) | (1 << TWEN));\r
-                               \r
-                               if (!(LastByte))\r
-                                 TWCRMask |= (1 << TWEA);\r
-\r
-                               TWCR = TWCRMask;\r
-                               while (!(TWCR & (1 << TWINT)));\r
-                               *Byte = TWDR;\r
-\r
-                               return ((TWSR & TW_STATUS_MASK) == TW_MR_DATA_ACK);\r
-                       }\r
-\r
-               /* Function Prototypes: */\r
-                       /** Begins a master mode TWI bus communication with the given slave device address.\r
-                        *\r
-                        *  \param[in] SlaveAddress  Address of the slave TWI device to communicate with\r
-                        *\r
-                        *  \return Boolean true if the device is ready for data, false otherwise\r
-                        */\r
-                       bool TWI_StartTransmission(uint8_t SlaveAddress);\r
-\r
-       /* Disable C linkage for C++ Compilers: */\r
-               #if defined(__cplusplus)\r
-                       }\r
-               #endif\r
-\r
-#endif\r
-\r
-/** @} */\r
diff --git a/LUFA/Drivers/Peripheral/AVRU4U6U7/ADC.h b/LUFA/Drivers/Peripheral/AVRU4U6U7/ADC.h
new file mode 100644 (file)
index 0000000..8b1b47d
--- /dev/null
@@ -0,0 +1,322 @@
+/*\r
+             LUFA Library\r
+     Copyright (C) Dean Camera, 2010.\r
+              \r
+  dean [at] fourwalledcubicle [dot] com\r
+      www.fourwalledcubicle.com\r
+*/\r
+\r
+/*\r
+  Copyright 2010  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
+ *\r
+ *  ADC driver for the AT90USB1287, AT90USB1286, AT90USB647, AT90USB646, ATMEGA16U4 and ATMEGA32U4 AVRs.\r
+ *\r
+ *  \note This file should not be included directly. It is automatically included as needed by the ADC driver\r
+ *        dispatch header located in LUFA/Drivers/Peripheral/ADC.h.\r
+ */\r
+\r
+/** \ingroup Group_ADC\r
+ *  @defgroup Group_ADC_AVRU4U6U7 Series U4, U6 and U7 Model ADC Driver\r
+ *\r
+ *  ADC driver for the AT90USB1287, AT90USB1286, AT90USB647, AT90USB646, ATMEGA16U4 and ATMEGA32U4 AVRs.\r
+ *\r
+ *  \note This file should not be included directly. It is automatically included as needed by the ADC driver\r
+ *        dispatch header located in LUFA/Drivers/Peripheral/ADC.h.\r
+ *\r
+ *  @{\r
+ */\r
\r
+#ifndef __ADC_AVRU4U6U7_H__\r
+#define __ADC_AVRU4U6U7_H__\r
+\r
+       /* Includes: */\r
+               #include "../../../Common/Common.h"\r
+               \r
+               #include <avr/io.h>\r
+               #include <stdbool.h>\r
+               \r
+       /* Enable C linkage for C++ Compilers: */\r
+               #if defined(__cplusplus)\r
+                       extern "C" {\r
+               #endif\r
+\r
+       /* Preprocessor Checks: */\r
+               #if !defined(__INCLUDE_FROM_ADC_H)\r
+                       #error Do not include this file directly. Include LUFA/Drivers/Peripheral/ADC.h instead.\r
+               #endif\r
+\r
+       /* Public Interface - May be used in end-application: */\r
+               /* Macros: */                   \r
+                       /** Reference mask, for using the voltage present at the AVR's AREF pin for the ADC reference. */\r
+                       #define  ADC_REFERENCE_AREF              0\r
+\r
+                       /** Reference mask, for using the voltage present at the AVR's AVCC pin for the ADC reference. */\r
+                       #define  ADC_REFERENCE_AVCC              (1 << REFS0)\r
+\r
+                       /** Reference mask, for using the internally generated 2.56V reference voltage as the ADC reference. */\r
+                       #define  ADC_REFERENCE_INT2560MV         ((1 << REFS1)| (1 << REFS0))\r
+                       \r
+                       /** Left-adjusts the 10-bit ADC result, so that the upper 8 bits of the value returned by the\r
+                        *  ADC_GetResult() macro contain the 8 most significant bits of the result. */\r
+                       #define  ADC_LEFT_ADJUSTED               (1 << ADLAR)\r
+\r
+                       /** Right-adjusts the 10-bit ADC result, so that the lower 8 bits of the value returned by the\r
+                        *  ADC_GetResult() macro contain the 8 least significant bits of the result. */\r
+                       #define  ADC_RIGHT_ADJUSTED              (0 << ADLAR)\r
+                       \r
+                       /** Sets the ADC mode to free running, so that conversions take place continuously as fast as the ADC\r
+                        *  is capable of at the given input clock speed. */\r
+                       #define  ADC_FREE_RUNNING                (1 << ADATE)\r
+\r
+                       /** Sets the ADC mode to single conversion, so that only a single conversion will take place before\r
+                        *  the ADC returns to idle. */\r
+                       #define  ADC_SINGLE_CONVERSION           (0 << ADATE)\r
+                       \r
+                       /** Sets the ADC input clock to prescale by a factor of 2 the AVR's system clock. */\r
+                       #define  ADC_PRESCALE_2                  (1 << ADPS0)\r
+\r
+                       /** Sets the ADC input clock to prescale by a factor of 4 the AVR's system clock. */\r
+                       #define  ADC_PRESCALE_4                  (1 << ADPS1)\r
+\r
+                       /** Sets the ADC input clock to prescale by a factor of 8 the AVR's system clock. */\r
+                       #define  ADC_PRESCALE_8                  ((1 << ADPS0) | (1 << ADPS1))\r
+\r
+                       /** Sets the ADC input clock to prescale by a factor of 16 the AVR's system clock. */\r
+                       #define  ADC_PRESCALE_16                 (1 << ADPS2)\r
+\r
+                       /** Sets the ADC input clock to prescale by a factor of 32 the AVR's system clock. */\r
+                       #define  ADC_PRESCALE_32                 ((1 << ADPS2) | (1 << ADPS0))\r
+\r
+                       /** Sets the ADC input clock to prescale by a factor of 64 the AVR's system clock. */\r
+                       #define  ADC_PRESCALE_64                 ((1 << ADPS2) | (1 << ADPS1))\r
+\r
+                       /** Sets the ADC input clock to prescale by a factor of 128 the AVR's system clock. */\r
+                       #define  ADC_PRESCALE_128                ((1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0))\r
+                       \r
+                       //@{\r
+                       /** MUX mask define for the ADC0 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading. */\r
+                       #define  ADC_CHANNEL0                    0x00\r
+\r
+                       /** MUX mask define for the ADC1 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading. */\r
+                       #define  ADC_CHANNEL1                    0x01\r
+\r
+                       #if !(defined(__AVR_ATmega16U4__)  || defined(__AVR_ATmega32U4__) || defined(__DOXYGEN__))\r
+                               /** MUX mask define for the ADC2 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading.\r
+                                *\r
+                                *  \note Note available on all AVR models.\r
+                                */\r
+                               #define  ADC_CHANNEL2                    0x02\r
+\r
+                               /** MUX mask define for the ADC3 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading.\r
+                                *\r
+                                *  \note Note available on all AVR models.\r
+                                */\r
+                               #define  ADC_CHANNEL3                    0x03\r
+                       #endif\r
+\r
+                       /** MUX mask define for the ADC4 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading. */\r
+                       #define  ADC_CHANNEL4                    0x04\r
+\r
+                       /** MUX mask define for the ADC5 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading. */\r
+                       #define  ADC_CHANNEL5                    0x05\r
+\r
+                       /** MUX mask define for the ADC6 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading. */\r
+                       #define  ADC_CHANNEL6                    0x06\r
+\r
+                       /** MUX mask define for the ADC7 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading. */\r
+                       #define  ADC_CHANNEL7                    0x07\r
+\r
+                       /** MUX mask define for the internal 1.1V bandgap channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading. */\r
+                       #define  ADC_1100MV_BANDGAP              0x1E\r
+                       \r
+                       #if (defined(__AVR_ATmega16U4__)  || defined(__AVR_ATmega32U4__) || defined(__DOXYGEN__))\r
+                               /** MUX mask define for the ADC8 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading.\r
+                                *\r
+                                *  \note Note available on all AVR models.\r
+                                */\r
+                               #define  ADC_CHANNEL8                0x20\r
+\r
+                               /** MUX mask define for the ADC9 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading.\r
+                                *\r
+                                *  \note Note available on all AVR models.\r
+                                */\r
+                               #define  ADC_CHANNEL9                0x21\r
+\r
+                               /** MUX mask define for the ADC10 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading.\r
+                                *\r
+                                *  \note Note available on all AVR models.\r
+                                */\r
+                               #define  ADC_CHANNEL10               0x22\r
+\r
+                               /** MUX mask define for the ADC11 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading.\r
+                                *\r
+                                *  \note Note available on all AVR models.\r
+                                */\r
+                               #define  ADC_CHANNEL11               0x23\r
+\r
+                               /** MUX mask define for the ADC12 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading.\r
+                                *\r
+                                *  \note Note available on all AVR models.\r
+                                */\r
+                               #define  ADC_CHANNEL12               0x24\r
+\r
+                               /** MUX mask define for the ADC13 channel of the ADC. See \ref ADC_StartReading and \ref ADC_GetChannelReading.\r
+                                *\r
+                                *  \note Note available on all AVR models.\r
+                                */\r
+                               #define  ADC_CHANNEL13               0x25\r
+\r
+                               /** MUX mask define for the internal temperature sensor channel of the ADC. See \ref ADC_StartReading and\r
+                                *  \ref ADC_GetChannelReading.\r
+                                *\r
+                                *  \note Note available on all AVR models.\r
+                                */\r
+                               #define  ADC_INT_TEMP_SENS           0x27                       \r
+                       #endif\r
+                       //@}\r
+               \r
+               /* Pseudo-Function Macros: */\r
+                       #if defined(__DOXYGEN__)\r
+                               /** Initializes the ADC, ready for conversions. This must be called before any other ADC operations.\r
+                                *  The "mode" parameter should be a mask comprised of a conversion mode (free running or single) and\r
+                                *  prescaler masks.\r
+                                *\r
+                                *  \param[in] Mode  Mask of ADC settings, including adjustment, prescale, mode and reference\r
+                                */\r
+                               static inline void ADC_Init(uint8_t Mode);\r
+\r
+                               /** Turns off the ADC. If this is called, any further ADC operations will require a call to\r
+                                *  \ref ADC_Init() before the ADC can be used again.\r
+                                */\r
+                               static inline void ADC_ShutDown(void);\r
+                               \r
+                               /** Indicates if the ADC is currently enabled.\r
+                                *\r
+                                *  \return Boolean true if the ADC subsystem is currently enabled, false otherwise.\r
+                                */\r
+                               static inline bool ADC_GetStatus(void);\r
+                               \r
+                               /** Indicates if the current ADC conversion is completed, or still in progress.\r
+                                *\r
+                                *  \return Boolean false if the reading is still taking place, or true if the conversion is\r
+                                *          complete and ready to be read out with \ref ADC_GetResult()\r
+                                */\r
+                               static inline bool ADC_IsReadingComplete(void);\r
+                               \r
+                               /** Retrieves the conversion value of the last completed ADC conversion.\r
+                                *\r
+                                *  \return The result of the last ADC conversion\r
+                                */\r
+                               static inline uint16_t ADC_GetResult(void);\r
+                       #else\r
+                               #define  ADC_Init(mode)          MACROS{ ADCSRA = ((1 << ADEN) | mode);         }MACROE\r
+\r
+                               #define  ADC_ShutDown()          MACROS{ ADCSRA = 0;                            }MACROE\r
+                               \r
+                               #define  ADC_GetStatus()               ((ADCSRA & (1 << ADEN)) ? true : false)\r
+\r
+                               #define  ADC_IsReadingComplete()        (ADCSRA & (1 << ADSC))\r
+                               \r
+                               #define  ADC_GetResult()                 ADC                    \r
+                       #endif\r
+                       \r
+               /* Inline Functions: */\r
+                       /** Configures the given ADC channel, ready for ADC conversions. This function sets the\r
+                        *  associated port pin as an input and disables the digital portion of the I/O to reduce\r
+                        *  power consumption.\r
+                        *\r
+                        *  \note This must only be called for ADC channels with are connected to a physical port\r
+                        *        pin of the AVR, denoted by its special alternative function ADCx.\r
+                        *\r
+                        *  \note The channel number must be specified as an integer, and NOT a ADC_CHANNELx mask.\r
+                        *\r
+                        *  \param[in] Channel  ADC channel number to set up for conversions\r
+                        */\r
+                       static inline void ADC_SetupChannel(const uint8_t Channel)\r
+                       {\r
+                               #if (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB646__) || \\r
+                                        defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__) || \\r
+                                        defined(__AVR_ATmega32U6__))                           \r
+                               DDRF  &= ~(1 << Channel);\r
+                               DIDR0 |=  (1 << Channel);\r
+                               #elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))\r
+                               if (Channel < 8)\r
+                               {\r
+                                       DDRF  &= ~(1 << Channel);\r
+                                       DIDR0 |=  (1 << Channel);\r
+                               }\r
+                               else if (Channel == 8)\r
+                               {\r
+                                       DDRD  &= ~(1 << 4);\r
+                                       DIDR2 |=  (1 << 0);\r
+                               }\r
+                               else if (Channel < 11)\r
+                               {\r
+                                       DDRD  &= ~(1 << (Channel - 3));\r
+                                       DIDR2 |=  (1 << (Channel - 8));\r
+                               }\r
+                               else\r
+                               {\r
+                                       DDRB  &= ~(1 << (Channel - 7));\r
+                                       DIDR2 |=  (1 << (Channel - 8));\r
+                               }\r
+                               #endif\r
+                       }\r
+                       \r
+                       /** Starts the reading of the given channel, but does not wait until the conversion has completed.\r
+                        *  Once executed, the conversion status can be determined via the \ref ADC_IsReadingComplete() macro and\r
+                        *  the result read via the \ref ADC_GetResult() macro.\r
+                        *\r
+                        *  \param[in] MUXMask  Mask comprising of an ADC channel mask, reference mask and adjustment mask\r
+                        */\r
+                       static inline void ADC_StartReading(const uint8_t MUXMask)\r
+                       {\r
+                               ADMUX = MUXMask;\r
+                       \r
+                               ADCSRA |= (1 << ADSC);\r
+                       }\r
+\r
+                       /** Performs a complete single reading from channel, including a polling spin-loop to wait for the\r
+                        *  conversion to complete, and the returning of the converted value.\r
+                        *\r
+                        *  \param[in] MUXMask  Mask comprising of an ADC channel mask, reference mask and adjustment mask\r
+                        */\r
+                       static inline uint16_t ADC_GetChannelReading(const uint8_t MUXMask) ATTR_WARN_UNUSED_RESULT;\r
+                       static inline uint16_t ADC_GetChannelReading(const uint8_t MUXMask)\r
+                       {\r
+                               ADC_StartReading(MUXMask);\r
+       \r
+                               while (!(ADC_IsReadingComplete()));\r
+       \r
+                               return ADC_GetResult();\r
+                       }\r
+\r
+       /* Disable C linkage for C++ Compilers: */\r
+               #if defined(__cplusplus)\r
+                       }\r
+               #endif\r
+               \r
+#endif\r
+\r
+/** @} */\r
diff --git a/LUFA/Drivers/Peripheral/AVRU4U6U7/SPI.h b/LUFA/Drivers/Peripheral/AVRU4U6U7/SPI.h
new file mode 100644 (file)
index 0000000..3440cc9
--- /dev/null
@@ -0,0 +1,189 @@
+/*\r
+             LUFA Library\r
+     Copyright (C) Dean Camera, 2010.\r
+              \r
+  dean [at] fourwalledcubicle [dot] com\r
+      www.fourwalledcubicle.com\r
+*/\r
+\r
+/*\r
+  Copyright 2010  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
+ *\r
+ *  SPI driver for the 8-bit AVRs.\r
+ *\r
+ *  \note This file should not be included directly. It is automatically included as needed by the SPI driver\r
+ *        dispatch header located in LUFA/Drivers/Peripheral/SPI.h.\r
+ */\r
\r
+/** \ingroup Group_SPI\r
+ *  @defgroup Group_SPI_AVR8 8-Bit AVR SPI Driver\r
+ *\r
+ *  SPI driver for the 8-bit AVRs.\r
+ *\r
+ *  \note This file should not be included directly. It is automatically included as needed by the ADC driver\r
+ *        dispatch header located in LUFA/Drivers/Peripheral/SPI.h.\r
+ *\r
+ *  @{\r
+ */\r
+\r
+#ifndef __SPI_AVR8_H__\r
+#define __SPI_AVR8_H__\r
+\r
+       /* Includes: */\r
+               #include <stdbool.h>\r
+\r
+       /* Preprocessor Checks: */\r
+               #if !defined(__INCLUDE_FROM_SPI_H)\r
+                       #error Do not include this file directly. Include LUFA/Drivers/Peripheral/SPI.h instead.\r
+               #endif\r
+\r
+       /* Enable C linkage for C++ Compilers: */\r
+               #if defined(__cplusplus)\r
+                       extern "C" {\r
+               #endif\r
+\r
+       /* Private Interface - For use in library only: */\r
+       #if !defined(__DOXYGEN__)\r
+               /* Macros: */\r
+                       #define SPI_USE_DOUBLESPEED            (1 << SPE)\r
+       #endif\r
+       \r
+       /* Public Interface - May be used in end-application: */\r
+               /* Macros: */\r
+                       /** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 2. */\r
+                       #define SPI_SPEED_FCPU_DIV_2           SPI_USE_DOUBLESPEED\r
+\r
+                       /** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 4. */\r
+                       #define SPI_SPEED_FCPU_DIV_4           0\r
+\r
+                       /** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 8. */\r
+                       #define SPI_SPEED_FCPU_DIV_8           (SPI_USE_DOUBLESPEED | (1 << SPR0))\r
+\r
+                       /** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 16. */\r
+                       #define SPI_SPEED_FCPU_DIV_16          (1 << SPR0)\r
+\r
+                       /** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 32. */\r
+                       #define SPI_SPEED_FCPU_DIV_32          (SPI_USE_DOUBLESPEED | (1 << SPR1))\r
+\r
+                       /** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 64. */\r
+                       #define SPI_SPEED_FCPU_DIV_64          (SPI_USE_DOUBLESPEED | (1 << SPR1) | (1 << SPR0))\r
+\r
+                       /** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 128. */\r
+                       #define SPI_SPEED_FCPU_DIV_128         ((1 << SPR1) | (1 << SPR0))\r
+                       \r
+                       /** SPI clock polarity mask for SPI_Init(). Indicates that the SCK should lead on the rising edge. */\r
+                       #define SPI_SCK_LEAD_RISING            (0 << CPOL)\r
+\r
+                       /** SPI clock polarity mask for SPI_Init(). Indicates that the SCK should lead on the falling edge. */\r
+                       #define SPI_SCK_LEAD_FALLING           (1 << CPOL)\r
+\r
+                       /** SPI data sample mode mask for SPI_Init(). Indicates that the data should sampled on the leading edge. */\r
+                       #define SPI_SAMPLE_LEADING             (0 << CPHA)\r
+\r
+                       /** SPI data sample mode mask for SPI_Init(). Indicates that the data should be sampled on the trailing edge. */\r
+                       #define SPI_SAMPLE_TRAILING            (1 << CPHA)\r
+                       \r
+                       /** SPI mode mask for SPI_Init(). Indicates that the SPI interface should be initialized into slave mode. */\r
+                       #define SPI_MODE_SLAVE                 (0 << MSTR)\r
+\r
+                       /** SPI mode mask for SPI_Init(). Indicates that the SPI interface should be initialized into master mode. */\r
+                       #define SPI_MODE_MASTER                (1 << MSTR)\r
+\r
+               /* Inline Functions: */\r
+                       /** Initialises the SPI subsystem, ready for transfers. Must be called before calling any other\r
+                        *  SPI routines.\r
+                        *\r
+                        *  \param[in] SPIOptions  SPI Options, a mask consisting of one of each of the SPI_SPEED_*,\r
+                        *                         SPI_SCK_*, SPI_SAMPLE_* and SPI_MODE_* masks\r
+                        */\r
+                       static inline void SPI_Init(const uint8_t SPIOptions)\r
+                       {\r
+                               DDRB  |= ((1 << 1) | (1 << 2));\r
+                               PORTB |= ((1 << 0) | (1 << 3));\r
+                               \r
+                               SPCR   = ((1 << SPE) | SPIOptions);\r
+                               \r
+                               if (SPIOptions & SPI_USE_DOUBLESPEED)\r
+                                 SPSR |= (1 << SPI2X);\r
+                               else\r
+                                 SPSR &= ~(1 << SPI2X);\r
+                       }\r
+                       \r
+                       /** Turns off the SPI driver, disabling and returning used hardware to their default configuration. */\r
+                       static inline void SPI_ShutDown(void)\r
+                       {\r
+                               DDRB  &= ~((1 << 1) | (1 << 2));\r
+                               PORTB &= ~((1 << 0) | (1 << 3));\r
+                               \r
+                               SPCR   = 0;\r
+                               SPSR   = 0;\r
+                       }\r
+                       \r
+                       /** Sends and receives a byte through the SPI interface, blocking until the transfer is complete.\r
+                        *\r
+                        *  \param[in] Byte  Byte to send through the SPI interface\r
+                        *\r
+                        *  \return Response byte from the attached SPI device\r
+                        */\r
+                       static inline uint8_t SPI_TransferByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;\r
+                       static inline uint8_t SPI_TransferByte(const uint8_t Byte)\r
+                       {\r
+                               SPDR = Byte;\r
+                               while (!(SPSR & (1 << SPIF)));\r
+                               return SPDR;\r
+                       }\r
+\r
+                       /** Sends a byte through the SPI interface, blocking until the transfer is complete. The response\r
+                        *  byte sent to from the attached SPI device is ignored.\r
+                        *\r
+                        *  \param[in] Byte Byte to send through the SPI interface\r
+                        */\r
+                       static inline void SPI_SendByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;\r
+                       static inline void SPI_SendByte(const uint8_t Byte)\r
+                       {\r
+                               SPDR = Byte;\r
+                               while (!(SPSR & (1 << SPIF)));\r
+                       }\r
+\r
+                       /** Sends a dummy byte through the SPI interface, blocking until the transfer is complete. The response\r
+                        *  byte from the attached SPI device is returned.\r
+                        *\r
+                        *  \return The response byte from the attached SPI device\r
+                        */\r
+                       static inline uint8_t SPI_ReceiveByte(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;\r
+                       static inline uint8_t SPI_ReceiveByte(void)\r
+                       {\r
+                               SPDR = 0x00;\r
+                               while (!(SPSR & (1 << SPIF)));\r
+                               return SPDR;\r
+                       }\r
+\r
+       /* Disable C linkage for C++ Compilers: */\r
+               #if defined(__cplusplus)\r
+                       }\r
+               #endif\r
+               \r
+#endif\r
+\r
+/** @} */\r
diff --git a/LUFA/Drivers/Peripheral/AVRU4U6U7/Serial.h b/LUFA/Drivers/Peripheral/AVRU4U6U7/Serial.h
new file mode 100644 (file)
index 0000000..0421dea
--- /dev/null
@@ -0,0 +1,145 @@
+/*\r
+             LUFA Library\r
+     Copyright (C) Dean Camera, 2010.\r
+              \r
+  dean [at] fourwalledcubicle [dot] com\r
+      www.fourwalledcubicle.com\r
+*/\r
+\r
+/*\r
+  Copyright 2010  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
+ *\r
+ *  ADC driver for the 8-bit AVRs.\r
+ *\r
+ *  \note This file should not be included directly. It is automatically included as needed by the USART driver\r
+ *        dispatch header located in LUFA/Drivers/Peripheral/Serial.h.\r
+ */\r
\r
+/** \ingroup Group_Serial\r
+ *  @defgroup Group_Serial_AVR8 8-Bit AVR Serial Driver\r
+ *\r
+ *  Serial driver for the 8-bit AVRs.\r
+ *\r
+ *  \note This file should not be included directly. It is automatically included as needed by the ADC driver\r
+ *        dispatch header located in LUFA/Drivers/Peripheral/USART.h.\r
+ *\r
+ *  @{\r
+ */\r
\r
+#ifndef __SERIAL_AVR8_H__\r
+#define __SERIAL_AVR8_H__\r
+\r
+       /* Includes: */\r
+               #include <avr/io.h>\r
+               #include <avr/pgmspace.h>\r
+               #include <stdbool.h>\r
+               \r
+       /* Preprocessor Checks: */\r
+               #if !defined(__INCLUDE_FROM_SERIAL_H)\r
+                       #error Do not include this file directly. Include LUFA/Drivers/Peripheral/Serial.h instead.\r
+               #endif\r
+\r
+       /* Public Interface - May be used in end-application: */\r
+               /* Macros: */\r
+                       /** Macro for calculating the baud value from a given baud rate when the U2X (double speed) bit is\r
+                        *  not set.\r
+                        */\r
+                       #define SERIAL_UBBRVAL(baud)    ((((F_CPU / 16) + (baud / 2)) / (baud)) - 1)\r
+\r
+                       /** Macro for calculating the baud value from a given baud rate when the U2X (double speed) bit is\r
+                        *  set.\r
+                        */\r
+                       #define SERIAL_2X_UBBRVAL(baud) ((((F_CPU / 8) + (baud / 2)) / (baud)) - 1)\r
+\r
+               /* Pseudo-Function Macros: */\r
+                       #if defined(__DOXYGEN__)\r
+                               /** Indicates whether a character has been received through the USART.\r
+                                *\r
+                                *  \return Boolean true if a character has been received, false otherwise\r
+                                */\r
+                               static inline bool Serial_IsCharReceived(void);\r
+                       #else\r
+                               #define Serial_IsCharReceived() ((UCSR1A & (1 << RXC1)) ? true : false)\r
+                       #endif\r
+\r
+               /* Inline Functions: */\r
+                       /** Initializes the USART, ready for serial data transmission and reception. This initializes the interface to\r
+                        *  standard 8-bit, no parity, 1 stop bit settings suitable for most applications.\r
+                        *\r
+                        *  \param[in] BaudRate     Serial baud rate, in bits per second\r
+                        *  \param[in] DoubleSpeed  Enables double speed mode when set, halving the sample time to double the baud rate\r
+                        */\r
+                       static inline void Serial_Init(const uint32_t BaudRate, const bool DoubleSpeed)\r
+                       {\r
+                               UCSR1A = (DoubleSpeed ? (1 << U2X1) : 0);\r
+                               UCSR1B = ((1 << TXEN1)  | (1 << RXEN1));\r
+                               UCSR1C = ((1 << UCSZ11) | (1 << UCSZ10));\r
+                               \r
+                               DDRD  |= (1 << 3);      \r
+                               PORTD |= (1 << 2);\r
+                               \r
+                               UBRR1  = (DoubleSpeed ? SERIAL_2X_UBBRVAL(BaudRate) : SERIAL_UBBRVAL(BaudRate));\r
+                       }\r
+\r
+                       /** Turns off the USART driver, disabling and returning used hardware to their default configuration. */\r
+                       static inline void Serial_ShutDown(void)\r
+                       {\r
+                               UCSR1A = 0;\r
+                               UCSR1B = 0;\r
+                               UCSR1C = 0;\r
+                               \r
+                               DDRD  &= ~(1 << 3);     \r
+                               PORTD &= ~(1 << 2);\r
+                               \r
+                               UBRR1  = 0;\r
+                       }\r
+                       \r
+                       /** Transmits a given byte through the USART.\r
+                        *\r
+                        *  \param[in] DataByte  Byte to transmit through the USART\r
+                        */\r
+                       static inline void Serial_TxByte(const char DataByte)\r
+                       {\r
+                               while (!(UCSR1A & (1 << UDRE1)));\r
+                               UDR1 = DataByte;\r
+                       }\r
+\r
+                       /** Receives a byte from the USART.\r
+                        *\r
+                        *  \return Byte received from the USART\r
+                        */\r
+                       static inline uint8_t Serial_RxByte(void)\r
+                       {\r
+                               while (!(UCSR1A & (1 << RXC1)));\r
+                               return UDR1; \r
+                       }\r
+\r
+       /* Disable C linkage for C++ Compilers: */\r
+               #if defined(__cplusplus)\r
+                       }\r
+               #endif\r
+               \r
+#endif\r
+\r
+/** @} */\r
diff --git a/LUFA/Drivers/Peripheral/AVRU4U6U7/TWI.h b/LUFA/Drivers/Peripheral/AVRU4U6U7/TWI.h
new file mode 100644 (file)
index 0000000..13db86e
--- /dev/null
@@ -0,0 +1,146 @@
+/*\r
+             LUFA Library\r
+     Copyright (C) Dean Camera, 2010.\r
+              \r
+  dean [at] fourwalledcubicle [dot] com\r
+      www.fourwalledcubicle.com\r
+*/\r
+\r
+/*\r
+  Copyright 2010  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
+ *\r
+ *  Master mode TWI driver for the AT90USB1287, AT90USB1286, AT90USB647, AT90USB646, ATMEGA16U4 and ATMEGA32U4 AVRs.\r
+ *\r
+ *  \note This file should not be included directly. It is automatically included as needed by the TWI driver\r
+ *        dispatch header located in LUFA/Drivers/Peripheral/TWI.h.\r
+ */\r
+\r
+/** \ingroup Group_TWI\r
+ *  @defgroup Group_TWI_AVRU4U6U7 Series U4, U6 and U7 Model TWI Driver\r
+ *\r
+ *  Master mode TWI driver for the AT90USB1287, AT90USB1286, AT90USB647, AT90USB646, ATMEGA16U4 and ATMEGA32U4 AVRs.\r
+ *\r
+ *  \note This file should not be included directly. It is automatically included as needed by the TWI driver\r
+ *        dispatch header located in LUFA/Drivers/Peripheral/TWI.h.\r
+ *\r
+ *  @{\r
+ */\r
+\r
+#ifndef __TWI_AVRU4U6U7_H__\r
+#define __TWI_AVRU4U6U7_H__\r
+\r
+       /* Includes: */\r
+               #include "../../../Common/Common.h"\r
+               \r
+               #include <avr/io.h>\r
+               #include <stdbool.h>\r
+               #include <util/twi.h>\r
+               \r
+       /* Enable C linkage for C++ Compilers: */\r
+               #if defined(__cplusplus)\r
+                       extern "C" {\r
+               #endif\r
+\r
+       /* Preprocessor Checks: */\r
+               #if !defined(__INCLUDE_FROM_TWI_H)\r
+                       #error Do not include this file directly. Include LUFA/Drivers/Peripheral/TWI.h instead.\r
+               #endif\r
+\r
+       /* Public Interface - May be used in end-application: */\r
+               /* Pseudo-Function Macros: */\r
+                       #if defined(__DOXYGEN__)\r
+                               /** Initializes the TWI hardware into master mode, ready for data transmission and reception. This must be\r
+                                *  before any other TWI operations.\r
+                                */\r
+                               static inline void TWI_Init(void);\r
+                               \r
+                               /** Turns off the TWI driver hardware. If this is called, any further TWI operations will require a call to\r
+                                *  \ref TWI_Init() before the TWI can be used again.\r
+                                */                             \r
+                               static inline void TWI_ShutDown(void);\r
+                       #else\r
+                               #define TWI_Init()        MACROS{ TWCR |=  (1 << TWEN); }MACROE\r
+                               #define TWI_ShutDown()    MACROS{ TWCR &= ~(1 << TWEN); }MACROE\r
+                       #endif\r
+\r
+               /* Inline Functions: */\r
+                       /** Sends a TWI STOP onto the TWI bus, terminating communication with the currently addressed device. */\r
+                       static inline void TWI_StopTransmission(void)\r
+                       {\r
+                               TWCR = ((1 << TWINT) | (1 << TWSTO) | (1 << TWEN));\r
+                       }\r
+\r
+                       /** Sends a byte to the currently addressed device on the TWI bus.\r
+                        *\r
+                        *  \param[in] Byte  Byte to send to the currently addressed device\r
+                        *\r
+                        *  \return Boolean true if the recipient ACKed the byte, false otherwise\r
+                        */\r
+                       static inline bool TWI_SendByte(uint8_t Byte)\r
+                       {\r
+                               TWDR = Byte;\r
+                               TWCR = ((1 << TWINT) | (1 << TWEN));    \r
+                               while (!(TWCR & (1 << TWINT)));\r
+\r
+                               return ((TWSR & TW_STATUS_MASK) == TW_MT_DATA_ACK);\r
+                       }\r
+\r
+                       /** Receives a byte from the currently addressed device on the TWI bus.\r
+                        *\r
+                        *  \param[in] Byte  Location where the read byte is to be stored\r
+                        *  \param[in] LastByte  Indicates if the byte should be ACKed if false, NAKed if true\r
+                        *\r
+                        *  \return Boolean true if the byte reception sucessfully completed, false otherwise\r
+                        */\r
+                       static inline bool TWI_ReceiveByte(uint8_t* Byte, bool LastByte)\r
+                       {\r
+                               uint8_t TWCRMask = ((1 << TWINT) | (1 << TWEN));\r
+                               \r
+                               if (!(LastByte))\r
+                                 TWCRMask |= (1 << TWEA);\r
+\r
+                               TWCR = TWCRMask;\r
+                               while (!(TWCR & (1 << TWINT)));\r
+                               *Byte = TWDR;\r
+\r
+                               return ((TWSR & TW_STATUS_MASK) == TW_MR_DATA_ACK);\r
+                       }\r
+\r
+               /* Function Prototypes: */\r
+                       /** Begins a master mode TWI bus communication with the given slave device address.\r
+                        *\r
+                        *  \param[in] SlaveAddress  Address of the slave TWI device to communicate with\r
+                        *\r
+                        *  \return Boolean true if the device is ready for data, false otherwise\r
+                        */\r
+                       bool TWI_StartTransmission(uint8_t SlaveAddress);\r
+\r
+       /* Disable C linkage for C++ Compilers: */\r
+               #if defined(__cplusplus)\r
+                       }\r
+               #endif\r
+\r
+#endif\r
+\r
+/** @} */\r
index 6c4ac28..6416cea 100644 (file)
 \r
 /** \file\r
  *\r
- *  This file is the master dispatch header file for the device-specific SPI driver, for AVRs containing a SPI.\r
- *\r
- *  User code should include this file, which will in turn include the correct SPI driver header file for the\r
- *  currently selected AVR model.\r
+ *  Hardware SPI subsystem driver for the supported USB AVRs models.\r
  */\r
 \r
 /** \ingroup Group_PeripheralDrivers\r
 #ifndef __SPI_H__\r
 #define __SPI_H__\r
 \r
-       /* Macros: */\r
+       /* Includes: */\r
+               #include <stdbool.h>\r
+\r
+       /* Enable C linkage for C++ Compilers: */\r
+               #if defined(__cplusplus)\r
+                       extern "C" {\r
+               #endif\r
+\r
+       /* Private Interface - For use in library only: */\r
        #if !defined(__DOXYGEN__)\r
-               #define __INCLUDE_FROM_SPI_H\r
+               /* Macros: */\r
+                       #define SPI_USE_DOUBLESPEED            (1 << SPE)\r
        #endif\r
+       \r
+       /* Public Interface - May be used in end-application: */\r
+               /* Macros: */\r
+                       /** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 2. */\r
+                       #define SPI_SPEED_FCPU_DIV_2           SPI_USE_DOUBLESPEED\r
 \r
-       /* Includes: */\r
-               #include "../../Common/Common.h"                \r
+                       /** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 4. */\r
+                       #define SPI_SPEED_FCPU_DIV_4           0\r
+\r
+                       /** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 8. */\r
+                       #define SPI_SPEED_FCPU_DIV_8           (SPI_USE_DOUBLESPEED | (1 << SPR0))\r
+\r
+                       /** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 16. */\r
+                       #define SPI_SPEED_FCPU_DIV_16          (1 << SPR0)\r
+\r
+                       /** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 32. */\r
+                       #define SPI_SPEED_FCPU_DIV_32          (SPI_USE_DOUBLESPEED | (1 << SPR1))\r
+\r
+                       /** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 64. */\r
+                       #define SPI_SPEED_FCPU_DIV_64          (SPI_USE_DOUBLESPEED | (1 << SPR1) | (1 << SPR0))\r
+\r
+                       /** SPI prescaler mask for SPI_Init(). Divides the system clock by a factor of 128. */\r
+                       #define SPI_SPEED_FCPU_DIV_128         ((1 << SPR1) | (1 << SPR0))\r
+                       \r
+                       /** SPI clock polarity mask for SPI_Init(). Indicates that the SCK should lead on the rising edge. */\r
+                       #define SPI_SCK_LEAD_RISING            (0 << CPOL)\r
+\r
+                       /** SPI clock polarity mask for SPI_Init(). Indicates that the SCK should lead on the falling edge. */\r
+                       #define SPI_SCK_LEAD_FALLING           (1 << CPOL)\r
+\r
+                       /** SPI data sample mode mask for SPI_Init(). Indicates that the data should sampled on the leading edge. */\r
+                       #define SPI_SAMPLE_LEADING             (0 << CPHA)\r
+\r
+                       /** SPI data sample mode mask for SPI_Init(). Indicates that the data should be sampled on the trailing edge. */\r
+                       #define SPI_SAMPLE_TRAILING            (1 << CPHA)\r
+                       \r
+                       /** SPI mode mask for SPI_Init(). Indicates that the SPI interface should be initialized into slave mode. */\r
+                       #define SPI_MODE_SLAVE                 (0 << MSTR)\r
+\r
+                       /** SPI mode mask for SPI_Init(). Indicates that the SPI interface should be initialized into master mode. */\r
+                       #define SPI_MODE_MASTER                (1 << MSTR)\r
+\r
+               /* Inline Functions: */\r
+                       /** Initializes the SPI subsystem, ready for transfers. Must be called before calling any other\r
+                        *  SPI routines.\r
+                        *\r
+                        *  \param[in] SPIOptions  SPI Options, a mask consisting of one of each of the SPI_SPEED_*,\r
+                        *                         SPI_SCK_*, SPI_SAMPLE_* and SPI_MODE_* masks\r
+                        */\r
+                       static inline void SPI_Init(const uint8_t SPIOptions)\r
+                       {\r
+                               DDRB  |= ((1 << 1) | (1 << 2));\r
+                               PORTB |= ((1 << 0) | (1 << 3));\r
+                               \r
+                               SPCR   = ((1 << SPE) | SPIOptions);\r
+                               \r
+                               if (SPIOptions & SPI_USE_DOUBLESPEED)\r
+                                 SPSR |= (1 << SPI2X);\r
+                               else\r
+                                 SPSR &= ~(1 << SPI2X);\r
+                       }\r
+                       \r
+                       /** Turns off the SPI driver, disabling and returning used hardware to their default configuration. */\r
+                       static inline void SPI_ShutDown(void)\r
+                       {\r
+                               DDRB  &= ~((1 << 1) | (1 << 2));\r
+                               PORTB &= ~((1 << 0) | (1 << 3));\r
+                               \r
+                               SPCR   = 0;\r
+                               SPSR   = 0;\r
+                       }\r
+                       \r
+                       /** Sends and receives a byte through the SPI interface, blocking until the transfer is complete.\r
+                        *\r
+                        *  \param[in] Byte  Byte to send through the SPI interface\r
+                        *\r
+                        *  \return Response byte from the attached SPI device\r
+                        */\r
+                       static inline uint8_t SPI_TransferByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;\r
+                       static inline uint8_t SPI_TransferByte(const uint8_t Byte)\r
+                       {\r
+                               SPDR = Byte;\r
+                               while (!(SPSR & (1 << SPIF)));\r
+                               return SPDR;\r
+                       }\r
+\r
+                       /** Sends a byte through the SPI interface, blocking until the transfer is complete. The response\r
+                        *  byte sent to from the attached SPI device is ignored.\r
+                        *\r
+                        *  \param[in] Byte Byte to send through the SPI interface\r
+                        */\r
+                       static inline void SPI_SendByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;\r
+                       static inline void SPI_SendByte(const uint8_t Byte)\r
+                       {\r
+                               SPDR = Byte;\r
+                               while (!(SPSR & (1 << SPIF)));\r
+                       }\r
+\r
+                       /** Sends a dummy byte through the SPI interface, blocking until the transfer is complete. The response\r
+                        *  byte from the attached SPI device is returned.\r
+                        *\r
+                        *  \return The response byte from the attached SPI device\r
+                        */\r
+                       static inline uint8_t SPI_ReceiveByte(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;\r
+                       static inline uint8_t SPI_ReceiveByte(void)\r
+                       {\r
+                               SPDR = 0x00;\r
+                               while (!(SPSR & (1 << SPIF)));\r
+                               return SPDR;\r
+                       }\r
 \r
-               #if defined(__AVR32__)\r
-                       #include "AVR32/SPI.h"\r
-               #elif defined(__AVR__)\r
-                       #include "AVR8/SPI.h"           \r
+       /* Disable C linkage for C++ Compilers: */\r
+               #if defined(__cplusplus)\r
+                       }\r
                #endif\r
                \r
 #endif\r
index 838c1fd..d00f9c1 100644 (file)
 \r
 /** \file\r
  *\r
- *  This file is the master dispatch header file for the device-specific USART driver, for AVRs containing a\r
- *  USART.\r
- *\r
- *  User code should include this file, which will in turn include the correct USART driver header file for\r
- *  the currently selected AVR model.\r
+ *  Driver for the USART subsystem on supported USB AVRs.\r
  */\r
  \r
 /** \ingroup Group_PeripheralDrivers\r
 #ifndef __SERIAL_H__\r
 #define __SERIAL_H__\r
 \r
-       /* Macros: */\r
-       #if !defined(__DOXYGEN__)\r
-               #define __INCLUDE_FROM_SERIAL_H\r
-       #endif\r
-\r
        /* Includes: */\r
-               #include "../../Common/Common.h"                \r
+               #include <avr/io.h>\r
+               #include <avr/pgmspace.h>\r
+               #include <stdbool.h>\r
+               \r
+               #include "../../Common/Common.h"\r
                #include "../Misc/TerminalCodes.h"\r
 \r
-               #if defined(__AVR32__)\r
-                       #include "AVR32/Serial.h"\r
-               #elif defined(__AVR__)\r
-                       #include "AVR8/Serial.h"                \r
-               #endif\r
-               \r
        /* Enable C linkage for C++ Compilers: */\r
                #if defined(__cplusplus)\r
                        extern "C" {\r
                #endif\r
 \r
        /* Public Interface - May be used in end-application: */\r
+               /* Macros: */\r
+                       /** Macro for calculating the baud value from a given baud rate when the U2X (double speed) bit is\r
+                        *  not set.\r
+                        */\r
+                       #define SERIAL_UBBRVAL(baud)    ((((F_CPU / 16) + (baud / 2)) / (baud)) - 1)\r
+\r
+                       /** Macro for calculating the baud value from a given baud rate when the U2X (double speed) bit is\r
+                        *  set.\r
+                        */\r
+                       #define SERIAL_2X_UBBRVAL(baud) ((((F_CPU / 8) + (baud / 2)) / (baud)) - 1)\r
+\r
+               /* Pseudo-Function Macros: */\r
+                       #if defined(__DOXYGEN__)\r
+                               /** Indicates whether a character has been received through the USART.\r
+                                *\r
+                                *  \return Boolean true if a character has been received, false otherwise\r
+                                */\r
+                               static inline bool Serial_IsCharReceived(void);\r
+                       #else\r
+                               #define Serial_IsCharReceived() ((UCSR1A & (1 << RXC1)) ? true : false)\r
+                       #endif\r
+\r
                /* Function Prototypes: */\r
                        /** Transmits a given string located in program space (FLASH) through the USART.\r
                         *\r
                         */\r
                        void Serial_TxString(const char *StringPtr) ATTR_NON_NULL_PTR_ARG(1);\r
 \r
+               /* Inline Functions: */\r
+                       /** Initializes the USART, ready for serial data transmission and reception. This initializes the interface to\r
+                        *  standard 8-bit, no parity, 1 stop bit settings suitable for most applications.\r
+                        *\r
+                        *  \param[in] BaudRate     Serial baud rate, in bits per second\r
+                        *  \param[in] DoubleSpeed  Enables double speed mode when set, halving the sample time to double the baud rate\r
+                        */\r
+                       static inline void Serial_Init(const uint32_t BaudRate, const bool DoubleSpeed)\r
+                       {\r
+                               UCSR1A = (DoubleSpeed ? (1 << U2X1) : 0);\r
+                               UCSR1B = ((1 << TXEN1)  | (1 << RXEN1));\r
+                               UCSR1C = ((1 << UCSZ11) | (1 << UCSZ10));\r
+                               \r
+                               DDRD  |= (1 << 3);      \r
+                               PORTD |= (1 << 2);\r
+                               \r
+                               UBRR1  = (DoubleSpeed ? SERIAL_2X_UBBRVAL(BaudRate) : SERIAL_UBBRVAL(BaudRate));\r
+                       }\r
+\r
+                       /** Turns off the USART driver, disabling and returning used hardware to their default configuration. */\r
+                       static inline void Serial_ShutDown(void)\r
+                       {\r
+                               UCSR1A = 0;\r
+                               UCSR1B = 0;\r
+                               UCSR1C = 0;\r
+                               \r
+                               DDRD  &= ~(1 << 3);     \r
+                               PORTD &= ~(1 << 2);\r
+                               \r
+                               UBRR1  = 0;\r
+                       }\r
+                       \r
+                       /** Transmits a given byte through the USART.\r
+                        *\r
+                        *  \param[in] DataByte  Byte to transmit through the USART\r
+                        */\r
+                       static inline void Serial_TxByte(const char DataByte)\r
+                       {\r
+                               while (!(UCSR1A & (1 << UDRE1)));\r
+                               UDR1 = DataByte;\r
+                       }\r
+\r
+                       /** Receives a byte from the USART.\r
+                        *\r
+                        *  \return Byte received from the USART\r
+                        */\r
+                       static inline char Serial_RxByte(void)\r
+                       {\r
+                               while (!(UCSR1A & (1 << RXC1)));\r
+                               return UDR1; \r
+                       }\r
+\r
        /* Disable C linkage for C++ Compilers: */\r
                #if defined(__cplusplus)\r
                        }\r
index e22dc42..feadd0a 100644 (file)
@@ -57,8 +57,6 @@
                #include <avr/io.h>\r
                #include <stdio.h>\r
                \r
-               #include "../../Common/Common.h"                \r
-\r
                #include "Serial.h"\r
        \r
        /* Enable C linkage for C++ Compilers: */\r
index a3d4087..29c0afe 100644 (file)
        #endif\r
 \r
        /* Includes: */\r
-               #include "../../Common/Common.h"                \r
-\r
                #if (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB646__) || \\r
                     defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__) || \\r
                         defined(__AVR_ATmega16U4__)  || defined(__AVR_ATmega32U4__) || \\r
                         defined(__AVR_ATmega32U6__))\r
-                       #include "AVR8/TWI.h"\r
+                       #include "AVRU4U6U7/TWI.h"\r
                #else\r
                        #error "TWI is not available for the currently selected AVR model."\r
                #endif\r
index 197fe6b..1961e7e 100644 (file)
@@ -345,11 +345,7 @@ static bool RNDIS_Device_ProcessNDISQuery(USB_ClassInfo_RNDIS_Device_t* const RN
                case OID_GEN_SUPPORTED_LIST:\r
                        *ResponseSize = sizeof(AdapterSupportedOIDList);\r
                        \r
-                       #if defined(__AVR32__)\r
-                       memcpy(ResponseData, AdapterSupportedOIDList, sizeof(AdapterSupportedOIDList));                 \r
-                       #elif defined(__AVR__)\r
-                       memcpy_P(ResponseData, AdapterSupportedOIDList, sizeof(AdapterSupportedOIDList));                       \r
-                       #endif\r
+                       memcpy_P(ResponseData, AdapterSupportedOIDList, sizeof(AdapterSupportedOIDList));\r
                        \r
                        return true;\r
                case OID_GEN_PHYSICAL_MEDIUM:\r
index f911fbd..454f0b6 100644 (file)
 #define __CONFIGDESCRIPTOR_H__\r
 \r
        /* Includes: */\r
-               #if defined(__AVR32__)\r
-                       #include <avr32/io.h>\r
-               #elif defined(__AVR__)\r
-                       #include <avr/io.h>\r
-               #endif\r
+               #include <avr/io.h>\r
                \r
                #include "../../../Common/Common.h"\r
                #include "../HighLevel/USBMode.h"\r
@@ -65,7 +61,7 @@
 \r
        /* Preprocessor Checks: */\r
                #if !defined(__INCLUDE_FROM_USB_DRIVER)\r
-                       #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.\r
+                       #error Do not include this file directly. Include LUFA/Drivers/USB.h instead.\r
                #endif\r
                \r
        /* Public Interface - May be used in end-application: */        \r
index 2c310f4..12b30b2 100644 (file)
 #define __USBEVENTS_H__\r
 \r
        /* Includes: */\r
-               #if defined(__AVR32__)\r
-                       #include <avr32/io.h>\r
-               #elif defined(__AVR__)\r
-                       #include <avr/io.h>\r
-               #endif\r
+               #include <avr/io.h>\r
                \r
                #include "../../../Common/Common.h"\r
                #include "USBMode.h"\r
@@ -66,7 +62,7 @@
 \r
        /* Preprocessor Checks: */\r
                #if !defined(__INCLUDE_FROM_USB_DRIVER)\r
-                       #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.\r
+                       #error Do not include this file directly. Include LUFA/Drivers/USB.h instead.\r
                #endif\r
                \r
        /* Public Interface - May be used in end-application: */                        \r
index 363d262..807eb78 100644 (file)
 #define __USBDESCRIPTORS_H__\r
 \r
        /* Includes: */\r
-               #if defined(__AVR32__)\r
-                       #include <avr32/io.h>\r
-                       #include <stdint.h>\r
-                       #include <stdbool.h>\r
-                       #include <stddef.h>\r
-               #elif defined(__AVR__)\r
-                       #include <avr/pgmspace.h>\r
-                       #include <stdbool.h>\r
-                       #include <stddef.h>\r
-               #endif\r
+               #include <avr/pgmspace.h>\r
+               #include <stdbool.h>\r
+               #include <stddef.h>\r
 \r
                #include "../../../Common/Common.h"\r
                #include "USBMode.h"\r
@@ -67,7 +60,7 @@
 \r
        /* Preprocessor Checks: */\r
                #if !defined(__INCLUDE_FROM_USB_DRIVER)\r
-                       #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.\r
+                       #error Do not include this file directly. Include LUFA/Drivers/USB.h instead.\r
                #endif\r
                \r
        /* Public Interface - May be used in end-application: */\r
index 0db765d..4fad037 100644 (file)
@@ -42,7 +42,7 @@
 \r
        /* Preprocessor Checks: */\r
                #if !defined(__INCLUDE_FROM_USB_DRIVER)\r
-                       #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.\r
+                       #error Do not include this file directly. Include LUFA/Drivers/USB.h instead.\r
                #endif\r
                \r
        /* Public Interface - May be used in end-application: */\r
index 777b588..3d30655 100644 (file)
@@ -43,7 +43,7 @@
 \r
        /* Preprocessor Checks: */\r
                #if !defined(__INCLUDE_FROM_USB_DRIVER)\r
-                       #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.\r
+                       #error Do not include this file directly. Include LUFA/Drivers/USB.h instead.\r
                #endif\r
                \r
        /* Public Interface - May be used in end-application: */\r
index f009a0a..f8da7e6 100644 (file)
@@ -51,24 +51,17 @@ void USB_INT_DisableAllInterrupts(void)
 \r
 void USB_INT_ClearAllInterrupts(void)\r
 {\r
-       #if defined(__AVR32__)\r
-               AVR32_USBB.USBSTACLR = 0xFFFFFF;\r
-               AVR32_USBB.UHINTCLR = 0xFFFFFF;\r
-               AVR32_USBB.UECONX = \r
-               AVR32_USBB.UDINTCLR = 0xFFFFFF;         \r
-       #elif defined(__AVR__)\r
-               #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)\r
-               USBINT  = 0;\r
-               #endif\r
-               \r
-               #if defined(USB_CAN_BE_HOST)\r
-               UHINT   = 0;\r
-               OTGINT  = 0;\r
-               #endif\r
-               \r
-               #if defined(USB_CAN_BE_DEVICE)\r
-               UDINT   = 0;\r
-               #endif\r
+       #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)\r
+       USBINT  = 0;\r
+       #endif\r
+       \r
+       #if defined(USB_CAN_BE_HOST)\r
+       UHINT   = 0;\r
+       OTGINT  = 0;\r
+       #endif\r
+       \r
+       #if defined(USB_CAN_BE_DEVICE)\r
+       UDINT   = 0;\r
        #endif\r
 }\r
 \r
index 482ba0e..6ff7c70 100644 (file)
 #define __USBINTERRUPT_H__\r
 \r
        /* Includes: */\r
-               #if defined(__AVR32__)\r
-                       #include <avr32/io.h>\r
-                       #include <stdbool.h>\r
-                       #include <stdint.h>\r
-               #elif defined(__AVR__)\r
-                       #include <avr/io.h>\r
-                       #include <stdbool.h>\r
-               #endif\r
+               #include <avr/io.h>\r
+               #include <stdbool.h>\r
                \r
                #include "../../../Common/Common.h"\r
                #include "../LowLevel/LowLevel.h"\r
 \r
        /* Preprocessor Checks: */\r
                #if !defined(__INCLUDE_FROM_USB_DRIVER)\r
-                       #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.\r
+                       #error Do not include this file directly. Include LUFA/Drivers/USB.h instead.\r
                #endif\r
                \r
        /* Private Interface - For use in library only: */\r
        #if !defined(__DOXYGEN__)\r
                /* Macros: */\r
-                       #if defined(__AVR32__)\r
-                               #define USB_INT_Enable(int)       MACROS{ USB_INT_GET_EN_REG(int)   |=   USB_INT_GET_EN_MASK(int);   }MACROE\r
-                               #define USB_INT_Disable(int)      MACROS{ USB_INT_GET_EN_REG(int)   &= ~(USB_INT_GET_EN_MASK(int));  }MACROE\r
-                               #define USB_INT_Clear(int)        MACROS{ USB_INT_GET_INTC_REG(int) |=   USB_INT_GET_INTC_MASK(int); }MACROE\r
-                               #define USB_INT_IsEnabled(int)          ((USB_INT_GET_EN_REG(int)   &    USB_INT_GET_EN_MASK(int)) ? true : false)\r
-                               #define USB_INT_HasOccurred(int)        ((USB_INT_GET_INT_REG(int)  &    USB_INT_GET_INT_MASK(int)) ? true : false)\r
-\r
-                               #define USB_INT_GET_EN_REG(a, b, c, d)    *( (volatile uint32_t*)AVR32_USBB_ ## a )\r
-                               #define USB_INT_GET_EN_MASK(a, b, c, d)   AVR32_USBB_ ## b\r
-                               #define USB_INT_GET_INT_REG(a, b, c, d)   *( (volatile uint32_t*)AVR32_USBB_ ## c )\r
-                               #define USB_INT_GET_INT_MASK(a, b, c, d)  AVR32_USBB_ ## d\r
-                               #define USB_INT_GET_INTC_REG(a, b, c, d)  *( (volatile uint32_t*)AVR32_USBB_ ## c ## CLR )\r
-                               #define USB_INT_GET_INTC_MASK(a, b, c, d) AVR32_USBB_ ## d ## C\r
-\r
-                               #define USB_INT_VBUS                      USBCON, USBCON_VBUSTE_MASK, USBSTA, USBSTA_VBUSTI_MASK\r
-                               #define USB_INT_IDTI                      USBCON, USBCON_IDTE_MASK  , USBSTA, USBCON_IDTI_MASK\r
-                               #define USB_INT_WAKEUP                    UDIEN , UDIEN_WAKEUPE_MASK, UDINT , UDIEN_WAKEUPI_MASK\r
-                               #define USB_INT_SUSPEND                   UDIEN , UDIEN_SUSPE_MASK  , UDINT , UDIEN_SUSPI_MASK\r
-                               #define USB_INT_EORSTI                    UDIEN , UDIEN_EORSTE_MASK , UDINT , UDIEN_EORSTI_MASK\r
-                               #define USB_INT_SOFI                      UDIEN,  UDIEN_SOFE_MASK   , UDINT , UDIEN_SOFI_MASK\r
-                               #define USB_INT_DCONNI                    UHIEN , UDIEN_DCONNE_MASK , UHINT , UHIEN_DCONNI_MASK\r
-                               #define USB_INT_DDISCI                    UHIEN , UDIEN_DDISCE_MASK , UHINT , UHIEN_DDISCI_MASK\r
-                               #define USB_INT_HSOFI                     UHIEN,  UHIEN_HSOFE_MASK  , UHINT , UHIEN_HSOFI_MASK\r
-                               #define USB_INT_RSTI                      UHIEN , UHIEN_RSTE_MASK   , UHINT , UHIEN_RSTI_MASK\r
-                               #define USB_INT_RXSTPI                    UECONX, UECONX_RXSTPE_MASK, UESTAX, UESTAX_RXSTPI_MASK\r
-                               #define USB_INT_BCERRI                    USBCON, USBCON_BCERRE_MASK, USBSTA, USBSTA_BCERRI_MASK\r
-                               #define USB_INT_VBERRI                    USBCON, USBCON_VBERRE_MASK, USBSTA, USBSTA_VBERRI_MASK\r
-                               #define USB_INT_SRPI                      USBCON, USBCON_SRPE_MASK  , USBSTA, USBSTA_SRPI_MASK\r
-                       #elif defined(__AVR__)\r
-                               #define USB_INT_Enable(int)       MACROS{ USB_INT_GET_EN_REG(int)   |=   USB_INT_GET_EN_MASK(int);   }MACROE\r
-                               #define USB_INT_Disable(int)      MACROS{ USB_INT_GET_EN_REG(int)   &= ~(USB_INT_GET_EN_MASK(int));  }MACROE\r
-                               #define USB_INT_Clear(int)        MACROS{ USB_INT_GET_INT_REG(int)  &= ~(USB_INT_GET_INT_MASK(int)); }MACROE\r
-                               #define USB_INT_IsEnabled(int)          ((USB_INT_GET_EN_REG(int)   &    USB_INT_GET_EN_MASK(int)) ? true : false)\r
-                               #define USB_INT_HasOccurred(int)        ((USB_INT_GET_INT_REG(int)  &    USB_INT_GET_INT_MASK(int)) ? true : false)\r
+                       #define USB_INT_Enable(int)              MACROS{ USB_INT_GET_EN_REG(int)   |=   USB_INT_GET_EN_MASK(int);   }MACROE\r
+                       #define USB_INT_Disable(int)             MACROS{ USB_INT_GET_EN_REG(int)   &= ~(USB_INT_GET_EN_MASK(int));  }MACROE\r
+                       #define USB_INT_Clear(int)               MACROS{ USB_INT_GET_INT_REG(int)  &= ~(USB_INT_GET_INT_MASK(int)); }MACROE\r
+                       #define USB_INT_IsEnabled(int)                 ((USB_INT_GET_EN_REG(int)   &    USB_INT_GET_EN_MASK(int)) ? true : false)\r
+                       #define USB_INT_HasOccurred(int)               ((USB_INT_GET_INT_REG(int)  &    USB_INT_GET_INT_MASK(int)) ? true : false)\r
 \r
-                               #define USB_INT_GET_EN_REG(a, b, c, d)    a\r
-                               #define USB_INT_GET_EN_MASK(a, b, c, d)   b\r
-                               #define USB_INT_GET_INT_REG(a, b, c, d)   c\r
-                               #define USB_INT_GET_INT_MASK(a, b, c, d)  d\r
+                       #define USB_INT_GET_EN_REG(a, b, c, d)           a\r
+                       #define USB_INT_GET_EN_MASK(a, b, c, d)          b\r
+                       #define USB_INT_GET_INT_REG(a, b, c, d)          c\r
+                       #define USB_INT_GET_INT_MASK(a, b, c, d)         d\r
 \r
-                               #define USB_INT_VBUS                      USBCON, (1 << VBUSTE) , USBINT, (1 << VBUSTI)\r
-                               #define USB_INT_IDTI                      USBCON, (1 << IDTE)   , USBINT, (1 << IDTI)\r
-                               #define USB_INT_WAKEUP                    UDIEN , (1 << WAKEUPE), UDINT , (1 << WAKEUPI)\r
-                               #define USB_INT_SUSPEND                   UDIEN , (1 << SUSPE)  , UDINT , (1 << SUSPI)\r
-                               #define USB_INT_EORSTI                    UDIEN , (1 << EORSTE) , UDINT , (1 << EORSTI)\r
-                               #define USB_INT_SOFI                      UDIEN,  (1 << SOFE)   , UDINT , (1 << SOFI)\r
-                               #define USB_INT_DCONNI                    UHIEN , (1 << DCONNE) , UHINT , (1 << DCONNI)\r
-                               #define USB_INT_DDISCI                    UHIEN , (1 << DDISCE) , UHINT , (1 << DDISCI)\r
-                               #define USB_INT_HSOFI                     UHIEN,  (1 << HSOFE)  , UHINT , (1 << HSOFI)\r
-                               #define USB_INT_RSTI                      UHIEN , (1 << RSTE)   , UHINT , (1 << RSTI)\r
-                               #define USB_INT_BCERRI                    OTGIEN, (1 << BCERRE) , OTGINT, (1 << BCERRI)\r
-                               #define USB_INT_VBERRI                    OTGIEN, (1 << VBERRE) , OTGINT, (1 << VBERRI)\r
-                               #define USB_INT_SRPI                      OTGIEN, (1 << SRPE)   , OTGINT, (1 << SRPI)\r
-                               #define USB_INT_RXSTPI                    UEIENX, (1 << RXSTPE) , UEINTX, (1 << RXSTPI)\r
-                       #endif\r
+                       #define USB_INT_VBUS                             USBCON, (1 << VBUSTE) , USBINT, (1 << VBUSTI)\r
+                       #define USB_INT_IDTI                             USBCON, (1 << IDTE)   , USBINT, (1 << IDTI)\r
+                       #define USB_INT_WAKEUP                           UDIEN , (1 << WAKEUPE), UDINT , (1 << WAKEUPI)\r
+                       #define USB_INT_SUSPEND                          UDIEN , (1 << SUSPE)  , UDINT , (1 << SUSPI)\r
+                       #define USB_INT_EORSTI                           UDIEN , (1 << EORSTE) , UDINT , (1 << EORSTI)\r
+                       #define USB_INT_DCONNI                           UHIEN , (1 << DCONNE) , UHINT , (1 << DCONNI)\r
+                       #define USB_INT_DDISCI                           UHIEN , (1 << DDISCE) , UHINT , (1 << DDISCI)\r
+                       #define USB_INT_BCERRI                           OTGIEN, (1 << BCERRE) , OTGINT, (1 << BCERRI)\r
+                       #define USB_INT_VBERRI                           OTGIEN, (1 << VBERRE) , OTGINT, (1 << VBERRI)\r
+                       #define USB_INT_SOFI                             UDIEN,  (1 << SOFE)   , UDINT , (1 << SOFI)\r
+                       #define USB_INT_HSOFI                            UHIEN,  (1 << HSOFE)  , UHINT , (1 << HSOFI)\r
+                       #define USB_INT_RSTI                             UHIEN , (1 << RSTE)   , UHINT , (1 << RSTI)\r
+                       #define USB_INT_SRPI                             OTGIEN, (1 << SRPE)   , OTGINT, (1 << SRPI)\r
+                       #define USB_INT_RXSTPI                           UEIENX, (1 << RXSTPE) , UEINTX, (1 << RXSTPI)\r
        \r
                /* Function Prototypes: */\r
                        void USB_INT_ClearAllInterrupts(void);\r
index ee10dea..ba2d453 100644 (file)
@@ -45,7 +45,7 @@
 \r
        /* Preprocessor Checks: */\r
                #if !defined(__INCLUDE_FROM_USB_DRIVER)\r
-                       #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.\r
+                       #error Do not include this file directly. Include LUFA/Drivers/USB.h instead.\r
                #endif\r
                \r
        /* Public Interface - May be used in end-application: */\r
                 *  (i.e. AT90USBXXX7) when defined.\r
                 */\r
                #define USB_SERIES_7_AVR\r
-               \r
-               /** Indicates that the target AVR microcontroller belongs to the Series UC3B USB controller\r
-                *  (i.e. AT32UC3BXXXX) when defined.\r
-                */\r
-               #define USB_SERIES_UC3B_AVR\r
 \r
                /** Indicates that the target AVR microcontroller and compilation settings allow for the\r
                 *  target to be configured in USB Device mode when defined.\r
                                #define USB_SERIES_6_AVR\r
                        #elif (defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1287__))\r
                                #define USB_SERIES_7_AVR\r
-                       #elif (defined(__AVR32_UC3B0256__))\r
-                               #define USB_SERIES_UC3B_AVR\r
                        #endif                  \r
 \r
-                       #if !defined(USB_SERIES_7_AVR) && !defined(USB_SERIES_UC3B_AVR)\r
+                       #if !defined(USB_SERIES_7_AVR)          \r
                                #if defined(USB_HOST_ONLY)\r
                                        #error USB_HOST_ONLY is not available for the currently selected USB AVR model.\r
                                #endif\r
index f2aa03b..c01b84c 100644 (file)
 #define __USBTASK_H__\r
 \r
        /* Includes: */\r
-               #if defined(__AVR32__)\r
-                       #include <avr32/io.h>\r
-                       #include <stdint.h>\r
-                       #include <stdbool.h>\r
-               #elif defined(__AVR__)\r
-                       #include <avr/io.h>\r
-                       #include <avr/interrupt.h>\r
-                       #include <stdbool.h>\r
-               #endif\r
+               #include <avr/io.h>\r
+               #include <avr/interrupt.h>\r
+               #include <stdbool.h>\r
                \r
                #include "../LowLevel/LowLevel.h"\r
                #include "Events.h"\r
@@ -63,7 +57,7 @@
 \r
        /* Preprocessor Checks: */\r
                #if !defined(__INCLUDE_FROM_USB_DRIVER)\r
-                       #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.\r
+                       #error Do not include this file directly. Include LUFA/Drivers/USB.h instead.\r
                #endif\r
                \r
        /* Public Interface - May be used in end-application: */\r
@@ -87,7 +81,7 @@
                         extern USB_Request_Header_t USB_ControlRequest;\r
                        \r
                        #if defined(USB_CAN_BE_HOST) || defined(__DOXYGEN__)\r
-                               #if (!defined(__AVR32__) || !defined(HOST_STATE_AS_GPIOR)) || defined(__DOXYGEN__)\r
+                               #if !defined(HOST_STATE_AS_GPIOR) || defined(__DOXYGEN__)\r
                                        /** Indicates the current host state machine state. When in host mode, this indicates the state\r
                                         *  via one of the values of the \ref USB_Host_States_t enum values.\r
                                         *\r
                        #endif\r
 \r
                        #if defined(USB_CAN_BE_DEVICE) || defined(__DOXYGEN__)\r
-                               #if (defined(__AVR32__) || !defined(DEVICE_STATE_AS_GPIOR)) || defined(__DOXYGEN__)\r
+                               #if !defined(DEVICE_STATE_AS_GPIOR) || defined(__DOXYGEN__)\r
                                        /** Indicates the current device state machine state. When in device mode, this indicates the state\r
                                         *  via one of the values of the \ref USB_Device_States_t enum values.\r
                                         *\r
index 0d25e3b..7d9e815 100644 (file)
@@ -139,7 +139,7 @@ static void USB_Device_SetAddress(void)
        if (DeviceAddress)\r
          USB_DeviceState = DEVICE_STATE_Addressed;\r
 \r
-       USB_Device_SetDeviceAddress(DeviceAddress);\r
+       UDADDR = ((1 << ADDEN) | DeviceAddress);\r
 \r
        return;\r
 }\r
index c20b076..58a5dc8 100644 (file)
 #define __DEVCHAPTER9_H__\r
 \r
        /* Includes: */\r
-               #if defined(__AVR32__)\r
-                       #include <avr32/io.h>\r
-                       #include <stdint.h>\r
-               #elif defined(__AVR__)\r
-                       #include <avr/io.h>\r
-                       #include <avr/pgmspace.h>\r
-                       #include <avr/eeprom.h>\r
-                       #include <avr/boot.h>\r
-               #endif\r
+               #include <avr/io.h>\r
+               #include <avr/pgmspace.h>\r
+               #include <avr/eeprom.h>\r
+               #include <avr/boot.h>\r
                \r
                #include "../HighLevel/StdDescriptors.h"\r
                #include "../HighLevel/Events.h"\r
@@ -55,7 +50,7 @@
 \r
        /* Preprocessor Checks: */\r
                #if !defined(__INCLUDE_FROM_USB_DRIVER)\r
-                       #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.\r
+                       #error Do not include this file directly. Include LUFA/Drivers/USB.h instead.\r
                #endif\r
                \r
        /* Public Interface - May be used in end-application: */\r
                                enum USB_DescriptorMemorySpaces_t\r
                                {\r
                                        MEMSPACE_FLASH    = 0, /**< Indicates the requested descriptor is located in FLASH memory */\r
-                                       \r
-                                       #if defined(__AVR__) || defined(__DOXYGEN__)\r
                                        MEMSPACE_EEPROM   = 1, /**< Indicates the requested descriptor is located in EEPROM memory */\r
-                                       #endif\r
-                                       \r
                                        MEMSPACE_RAM      = 2, /**< Indicates the requested descriptor is located in RAM memory */\r
                                };\r
                        #endif\r
                #elif defined(USE_FLASH_DESCRIPTORS) && defined(USE_EEPROM_DESCRIPTORS) && defined(USE_RAM_DESCRIPTORS)\r
                        #error Only one of the USE_*_DESCRIPTORS modes should be selected.\r
                #endif\r
-               \r
-               #if defined(USE_EEPROM_DESCRIPTORS) && defined(USB_SERIES_UC3B_AVR)\r
-                       #error USE_EEPROM_DESCRIPTORS is not available on the UC3B series AVRs.\r
-               #endif\r
        \r
                /* Function Prototypes: */\r
                        void USB_Device_ProcessControlRequest(void);\r
index c1a1d92..1f929bf 100644 (file)
 #define __USBDEVICE_H__\r
 \r
        /* Includes: */\r
-               #if defined(__AVR__)\r
-                       #include <avr/pgmspace.h>\r
-                       #include <avr/eeprom.h>\r
-               #endif\r
-               \r
+               #include <avr/pgmspace.h>\r
+               #include <avr/eeprom.h>\r
+\r
                #include "../../../Common/Common.h"     \r
                #include "../HighLevel/StdDescriptors.h"\r
                #include "Endpoint.h"\r
                #endif\r
 \r
                #if !defined(__INCLUDE_FROM_USB_DRIVER)\r
-                       #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.\r
+                       #error Do not include this file directly. Include LUFA/Drivers/USB.h instead.\r
                #endif\r
                        \r
        /* Public Interface - May be used in end-application: */\r
                /* Macros: */\r
-                       #if (defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR) || \\r
-                            defined(USB_SERIES_UC3B_AVR) || defined(__DOXYGEN__))\r
+                       #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR) || defined(__DOXYGEN__)\r
                                /** Mask for the Options parameter of the \ref USB_Init() function. This indicates that the\r
                                 *  USB interface should be initialized in low speed (1.5Mb/s) mode.\r
                                 *\r
                                 *  \note Restrictions apply on the number, size and type of endpoints which can be used\r
                                 *        when running in low speed mode -- refer to the USB 2.0 standard.\r
                                 */\r
-                               #define USB_DEVICE_OPT_LOWSPEED       (1 << 0)\r
+                               #define USB_DEVICE_OPT_LOWSPEED            (1 << 0)\r
                        #endif\r
                        \r
                        /** Mask for the Options parameter of the USB_Init() function. This indicates that the\r
                         *  USB interface should be initialized in full speed (12Mb/s) mode.\r
                         */\r
-                       #define USB_DEVICE_OPT_FULLSPEED          (0 << 0)\r
+                       #define USB_DEVICE_OPT_FULLSPEED               (0 << 0)\r
                        \r
                /* Pseudo-Function Macros: */\r
                        #if defined(__DOXYGEN__)\r
                                 */\r
                                static inline bool USB_Device_DisableSOFEvents(void);\r
                        #else\r
-                               #if defined(__AVR32__)\r
-                                       #if !defined(NO_DEVICE_REMOTE_WAKEUP)\r
-                                               #define USB_Device_SendRemoteWakeup()   MACROS{ AVR32_USBB.UDCON.rmwkup = true; }MACROE\r
-\r
-                                               #define USB_Device_IsRemoteWakeupSent()         AVR32_USBB.UDCON.rmwkup\r
-                                       #endif\r
-                                       \r
-                                       #define USB_Device_IsUSBSuspended()                 AVR32_USBB.UDINT.susp                                       \r
-                               #elif defined(__AVR__)\r
-                                       #if !defined(NO_DEVICE_REMOTE_WAKEUP)\r
-                                               #define USB_Device_SendRemoteWakeup()   MACROS{ UDCON |= (1 << RMWKUP); }MACROE\r
+                               #if !defined(NO_DEVICE_REMOTE_WAKEUP)\r
+                                       #define USB_Device_SendRemoteWakeup()   MACROS{ UDCON |= (1 << RMWKUP); }MACROE\r
 \r
-                                               #define USB_Device_IsRemoteWakeupSent()       ((UDCON &  (1 << RMWKUP)) ? false : true)\r
-                                       #endif\r
-                                       \r
-                                       #define USB_Device_IsUSBSuspended()               ((UDINT & (1 << SUSPI)) ? true : false)\r
+                                       #define USB_Device_IsRemoteWakeupSent()       ((UDCON &  (1 << RMWKUP)) ? false : true)\r
                                #endif\r
-\r
+                               \r
+                               #define USB_Device_IsUSBSuspended()           ((UDINT &  (1 << SUSPI)) ? true : false)\r
+                               \r
                                #define USB_Device_EnableSOFEvents()    MACROS{ USB_INT_Enable(USB_INT_SOFI); }MACROE\r
+\r
                                #define USB_Device_DisableSOFEvents()   MACROS{ USB_INT_Disable(USB_INT_SOFI); }MACROE\r
                        #endif\r
                        \r
        /* Private Interface - For use in library only: */\r
        #if !defined(__DOXYGEN__)\r
                /* Macros: */           \r
-                       #if defined(__AVR32__)\r
-                               #define USB_Device_SetLowSpeed()          MACROS{ AVR32_USBB.UDCON.ls = true;  }MACROE\r
-                               #define USB_Device_SetFullSpeed()         MACROS{ AVR32_USBB.UDCON.ls = false; }MACROE\r
-                               \r
-                               #define USB_Device_SetDeviceAddress(addr) MACROS{ AVR32_USBB.UDCON.uadd = DeviceAddress; AVR32_USBB.UDCON.adden = true; }MACROE                 \r
-                       #elif defined(__AVR__)\r
-                               #define USB_Device_SetLowSpeed()          MACROS{ UDCON |=  (1 << LSM);   }MACROE\r
-                               #define USB_Device_SetFullSpeed()         MACROS{ UDCON &= ~(1 << LSM);   }MACROE\r
-                               \r
-                               #define USB_Device_SetDeviceAddress(addr) MACROS{ UDADDR =  ((1 << ADDEN) | DeviceAddress); }MACROE\r
-                       #endif\r
+                       #define USB_Device_SetLowSpeed()        MACROS{ UDCON |=  (1 << LSM);   }MACROE\r
+                       #define USB_Device_SetFullSpeed()       MACROS{ UDCON &= ~(1 << LSM);   }MACROE\r
        #endif\r
 \r
 #endif\r
index 89fd39f..81fef1c 100644 (file)
 uint8_t USB_ControlEndpointSize = ENDPOINT_CONTROLEP_DEFAULT_SIZE;\r
 #endif\r
 \r
-uintN_t Endpoint_BytesToEPSizeMaskDynamic(const uint16_t Size)\r
+uint8_t Endpoint_BytesToEPSizeMaskDynamic(const uint16_t Size)\r
 {\r
        return Endpoint_BytesToEPSizeMask(Size);\r
 }\r
 \r
-bool Endpoint_ConfigureEndpoint_Prv(const uintN_t Number, const uintN_t UECFG0XData, const uintN_t UECFG1XData)\r
+bool Endpoint_ConfigureEndpoint_Prv(const uint8_t Number, const uint8_t UECFG0XData, const uint8_t UECFG1XData)\r
 {\r
        Endpoint_SelectEndpoint(Number);\r
        Endpoint_EnableEndpoint();\r
@@ -225,14 +225,12 @@ uint8_t Endpoint_Discard_Stream(uint16_t Length
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(pgm_read_byte((uint8_t*)BufferPtr++))\r
 #include "Template/Template_Endpoint_RW.c"\r
 \r
-#if defined(__AVR__)\r
-       #define  TEMPLATE_FUNC_NAME                    Endpoint_Write_EStream_LE\r
-       #define  TEMPLATE_BUFFER_TYPE                  const void*\r
-       #define  TEMPLATE_CLEAR_ENDPOINT()             Endpoint_ClearIN()\r
-       #define  TEMPLATE_BUFFER_OFFSET(Length)        0\r
-       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)     Endpoint_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr++))\r
-       #include "Template/Template_Endpoint_RW.c"\r
-#endif\r
+#define  TEMPLATE_FUNC_NAME                        Endpoint_Write_EStream_LE\r
+#define  TEMPLATE_BUFFER_TYPE                      const void*\r
+#define  TEMPLATE_CLEAR_ENDPOINT()                 Endpoint_ClearIN()\r
+#define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
+#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr++))\r
+#include "Template/Template_Endpoint_RW.c"\r
 \r
 #define  TEMPLATE_FUNC_NAME                        Endpoint_Write_Stream_BE\r
 #define  TEMPLATE_BUFFER_TYPE                      const void*\r
@@ -241,14 +239,12 @@ uint8_t Endpoint_Discard_Stream(uint16_t Length
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(*((uint8_t*)BufferPtr--))\r
 #include "Template/Template_Endpoint_RW.c"\r
 \r
-#if defined(__AVR__)\r
-       #define  TEMPLATE_FUNC_NAME                    Endpoint_Write_EStream_BE\r
-       #define  TEMPLATE_BUFFER_TYPE                  const void*\r
-       #define  TEMPLATE_CLEAR_ENDPOINT()             Endpoint_ClearIN()\r
-       #define  TEMPLATE_BUFFER_OFFSET(Length)        (Length - 1)\r
-       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)     Endpoint_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr--))\r
-       #include "Template/Template_Endpoint_RW.c"\r
-#endif\r
+#define  TEMPLATE_FUNC_NAME                        Endpoint_Write_EStream_BE\r
+#define  TEMPLATE_BUFFER_TYPE                      const void*\r
+#define  TEMPLATE_CLEAR_ENDPOINT()                 Endpoint_ClearIN()\r
+#define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
+#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr--))\r
+#include "Template/Template_Endpoint_RW.c"\r
 \r
 #define  TEMPLATE_FUNC_NAME                        Endpoint_Write_PStream_BE\r
 #define  TEMPLATE_BUFFER_TYPE                      const void*\r
@@ -264,14 +260,12 @@ uint8_t Endpoint_Discard_Stream(uint16_t Length
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         *((uint8_t*)BufferPtr++) = Endpoint_Read_Byte()\r
 #include "Template/Template_Endpoint_RW.c"\r
 \r
-#if defined(__AVR__)\r
-       #define  TEMPLATE_FUNC_NAME                    Endpoint_Read_EStream_LE\r
-       #define  TEMPLATE_BUFFER_TYPE                  void*\r
-       #define  TEMPLATE_CLEAR_ENDPOINT()             Endpoint_ClearOUT()\r
-       #define  TEMPLATE_BUFFER_OFFSET(Length)        0\r
-       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)     eeprom_write_byte((uint8_t*)BufferPtr++, Endpoint_Read_Byte())\r
-       #include "Template/Template_Endpoint_RW.c"\r
-#endif\r
+#define  TEMPLATE_FUNC_NAME                        Endpoint_Read_EStream_LE\r
+#define  TEMPLATE_BUFFER_TYPE                      void*\r
+#define  TEMPLATE_CLEAR_ENDPOINT()                 Endpoint_ClearOUT()\r
+#define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
+#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         eeprom_write_byte((uint8_t*)BufferPtr++, Endpoint_Read_Byte())\r
+#include "Template/Template_Endpoint_RW.c"\r
 \r
 #define  TEMPLATE_FUNC_NAME                        Endpoint_Read_Stream_BE\r
 #define  TEMPLATE_BUFFER_TYPE                      void*\r
@@ -280,14 +274,12 @@ uint8_t Endpoint_Discard_Stream(uint16_t Length
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         *((uint8_t*)BufferPtr--) = Endpoint_Read_Byte()\r
 #include "Template/Template_Endpoint_RW.c"\r
 \r
-#if defined(__AVR__)\r
-       #define  TEMPLATE_FUNC_NAME                    Endpoint_Read_EStream_BE\r
-       #define  TEMPLATE_BUFFER_TYPE                  void*\r
-       #define  TEMPLATE_CLEAR_ENDPOINT()             Endpoint_ClearOUT()\r
-       #define  TEMPLATE_BUFFER_OFFSET(Length)        (Length - 1)\r
-       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)     eeprom_write_byte((uint8_t*)BufferPtr--, Endpoint_Read_Byte())\r
-       #include "Template/Template_Endpoint_RW.c"\r
-#endif\r
+#define  TEMPLATE_FUNC_NAME                        Endpoint_Read_EStream_BE\r
+#define  TEMPLATE_BUFFER_TYPE                      void*\r
+#define  TEMPLATE_CLEAR_ENDPOINT()                 Endpoint_ClearOUT()\r
+#define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
+#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         eeprom_write_byte((uint8_t*)BufferPtr--, Endpoint_Read_Byte())\r
+#include "Template/Template_Endpoint_RW.c"\r
 \r
 #endif\r
 \r
@@ -301,12 +293,10 @@ uint8_t Endpoint_Discard_Stream(uint16_t Length
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(pgm_read_byte((uint8_t*)BufferPtr++))\r
 #include "Template/Template_Endpoint_Control_W.c"\r
 \r
-#if defined(__AVR__)\r
-       #define  TEMPLATE_FUNC_NAME                    Endpoint_Write_Control_EStream_LE\r
-       #define  TEMPLATE_BUFFER_OFFSET(Length)        0\r
-       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)     Endpoint_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr++))\r
-       #include "Template/Template_Endpoint_Control_W.c"\r
-#endif\r
+#define  TEMPLATE_FUNC_NAME                        Endpoint_Write_Control_EStream_LE\r
+#define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
+#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr++))\r
+#include "Template/Template_Endpoint_Control_W.c"\r
 \r
 #define  TEMPLATE_FUNC_NAME                        Endpoint_Write_Control_Stream_BE\r
 #define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
@@ -318,35 +308,29 @@ uint8_t Endpoint_Discard_Stream(uint16_t Length
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(pgm_read_byte((uint8_t*)BufferPtr--))\r
 #include "Template/Template_Endpoint_Control_W.c"\r
 \r
-#if defined(__AVR__)\r
-       #define  TEMPLATE_FUNC_NAME                    Endpoint_Write_Control_EStream_BE\r
-       #define  TEMPLATE_BUFFER_OFFSET(Length)        (Length - 1)\r
-       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)     Endpoint_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr--))\r
-       #include "Template/Template_Endpoint_Control_W.c"\r
-#endif\r
+#define  TEMPLATE_FUNC_NAME                        Endpoint_Write_Control_EStream_BE\r
+#define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
+#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Endpoint_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr--))\r
+#include "Template/Template_Endpoint_Control_W.c"\r
 \r
 #define  TEMPLATE_FUNC_NAME                        Endpoint_Read_Control_Stream_LE\r
 #define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         *((uint8_t*)BufferPtr++) = Endpoint_Read_Byte()\r
 #include "Template/Template_Endpoint_Control_R.c"\r
 \r
-#if defined(__AVR__)\r
-       #define  TEMPLATE_FUNC_NAME                    Endpoint_Read_Control_EStream_LE\r
-       #define  TEMPLATE_BUFFER_OFFSET(Length)        0\r
-       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)     eeprom_write_byte((uint8_t*)BufferPtr++, Endpoint_Read_Byte())\r
-       #include "Template/Template_Endpoint_Control_R.c"\r
-#endif\r
+#define  TEMPLATE_FUNC_NAME                        Endpoint_Read_Control_EStream_LE\r
+#define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
+#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         eeprom_write_byte((uint8_t*)BufferPtr++, Endpoint_Read_Byte())\r
+#include "Template/Template_Endpoint_Control_R.c"\r
 \r
 #define  TEMPLATE_FUNC_NAME                        Endpoint_Read_Control_Stream_BE\r
 #define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         *((uint8_t*)BufferPtr--) = Endpoint_Read_Byte()\r
 #include "Template/Template_Endpoint_Control_R.c"\r
 \r
-#if defined(__AVR__)\r
-       #define  TEMPLATE_FUNC_NAME                    Endpoint_Read_Control_EStream_BE\r
-       #define  TEMPLATE_BUFFER_OFFSET(Length)        (Length - 1)\r
-       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)     eeprom_write_byte((uint8_t*)BufferPtr--, Endpoint_Read_Byte())\r
-       #include "Template/Template_Endpoint_Control_R.c"\r
-#endif\r
+#define  TEMPLATE_FUNC_NAME                        Endpoint_Read_Control_EStream_BE\r
+#define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
+#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         eeprom_write_byte((uint8_t*)BufferPtr--, Endpoint_Read_Byte())\r
+#include "Template/Template_Endpoint_Control_R.c"\r
 \r
 #endif\r
index 8431573..6d98b78 100644 (file)
 #define __ENDPOINT_H__\r
 \r
        /* Includes: */\r
-               #if defined(__AVR32__)\r
-                       #include <avr32/io.h>\r
-                       #include <stdint.h>\r
-                       #include <stdbool.h>\r
-               #elif defined(__AVR__)\r
-                       #include <avr/io.h>\r
-                       #include <avr/pgmspace.h>\r
-                       #include <avr/eeprom.h>\r
-                       #include <stdbool.h>\r
-               #endif\r
-               \r
+               #include <avr/io.h>\r
+               #include <avr/pgmspace.h>\r
+               #include <avr/eeprom.h>\r
+               #include <stdbool.h>\r
+\r
                #include "../../../Common/Common.h"\r
-               #include "LowLevel.h"\r
                #include "../HighLevel/USBTask.h"\r
 \r
                #if !defined(NO_STREAM_CALLBACKS) || defined(__DOXYGEN__)\r
 \r
        /* Preprocessor Checks: */\r
                #if !defined(__INCLUDE_FROM_USB_DRIVER)\r
-                       #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.\r
+                       #error Do not include this file directly. Include LUFA/Drivers/USB.h instead.\r
                #endif\r
                \r
-               #if defined(__AVR32__) && !defined(__AVR32_EPREG_X)\r
-                       #define __AVR32_EPREG_X(x) ((volatile uint32_t*)AVR32_USBB_ ## x)[USB_SelectedEPNumber]                 \r
-               #endif\r
-\r
        /* Public Interface - May be used in end-application: */\r
                /* Macros: */\r
-                       #if defined(__AVR32__) || defined(__DOXYGEN__)\r
-                               /** Endpoint data direction mask for \ref Endpoint_ConfigureEndpoint(). This indicates that the endpoint\r
-                                *  should be initialized in the OUT direction - i.e. data flows from host to device.\r
-                                */\r
-                               #define ENDPOINT_DIR_OUT                  0\r
+                       /** Endpoint data direction mask for \ref Endpoint_ConfigureEndpoint(). This indicates that the endpoint\r
+                        *  should be initialized in the OUT direction - i.e. data flows from host to device.\r
+                        */\r
+                       #define ENDPOINT_DIR_OUT                      (0 << EPDIR)\r
 \r
-                               /** Endpoint data direction mask for \ref Endpoint_ConfigureEndpoint(). This indicates that the endpoint\r
-                                *  should be initialized in the IN direction - i.e. data flows from device to host.\r
-                                */\r
-                               #define ENDPOINT_DIR_IN                   AVR32_USBB_EPDIR_IN\r
+                       /** Endpoint data direction mask for \ref Endpoint_ConfigureEndpoint(). This indicates that the endpoint\r
+                        *  should be initialized in the IN direction - i.e. data flows from device to host.\r
+                        */\r
+                       #define ENDPOINT_DIR_IN                       (1 << EPDIR)\r
 \r
-                               /** Mask for the bank mode selection for the \ref Endpoint_ConfigureEndpoint() macro. This indicates\r
-                                *  that the endpoint should have one single bank, which requires less USB FIFO memory but results\r
-                                *  in slower transfers as only one USB device (the AVR or the host) can access the endpoint's\r
-                                *  bank at the one time.\r
-                                */\r
-                               #define ENDPOINT_BANK_SINGLE              AVR32_USBB_EPBK_SINGLE\r
-                               \r
-                               /** Mask for the bank mode selection for the \ref Endpoint_ConfigureEndpoint() macro. This indicates\r
-                                *  that the endpoint should have two banks, which requires more USB FIFO memory but results\r
-                                *  in faster transfers as one USB device (the AVR or the host) can access one bank while the other\r
-                                *  accesses the second bank.\r
-                                */\r
-                               #define ENDPOINT_BANK_DOUBLE              AVR32_USBB_EPBK_DOUBLE\r
-                       #elif defined(__AVR__)\r
-                               #define ENDPOINT_DIR_OUT                  (0 << EPDIR)\r
-                               #define ENDPOINT_DIR_IN                   (1 << EPDIR)\r
-                               #define ENDPOINT_BANK_SINGLE              (0 << EPBK0)\r
-                               #define ENDPOINT_BANK_DOUBLE              (1 << EPBK0)                  \r
-                       #endif\r
+                       /** Mask for the bank mode selection for the \ref Endpoint_ConfigureEndpoint() macro. This indicates\r
+                        *  that the endpoint should have one single bank, which requires less USB FIFO memory but results\r
+                        *  in slower transfers as only one USB device (the AVR or the host) can access the endpoint's\r
+                        *  bank at the one time.\r
+                        */\r
+                       #define ENDPOINT_BANK_SINGLE                  (0 << EPBK0)\r
+\r
+                       /** Mask for the bank mode selection for the \ref Endpoint_ConfigureEndpoint() macro. This indicates\r
+                        *  that the endpoint should have two banks, which requires more USB FIFO memory but results\r
+                        *  in faster transfers as one USB device (the AVR or the host) can access one bank while the other\r
+                        *  accesses the second bank.\r
+                        */\r
+                       #define ENDPOINT_BANK_DOUBLE                  (1 << EPBK0)\r
                        \r
                        /** Endpoint address for the default control endpoint, which always resides in address 0. This is\r
                         *  defined for convenience to give more readable code when used with the endpoint macros.\r
                        #define ENDPOINT_DOUBLEBANK_SUPPORTED(n)      _ENDPOINT_GET_DOUBLEBANK(n)\r
 \r
                        #if !defined(CONTROL_ONLY_DEVICE)\r
-                               #if (defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR) || \\r
-                                    defined(USB_SERIES_UC3B_AVR) || defined(__DOXYGEN__))\r
+                               #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR) || defined(__DOXYGEN__)\r
                                        /** Total number of endpoints (including the default control endpoint at address 0) which may\r
                                         *  be used in the device. Different USB AVR models support different amounts of endpoints,\r
                                         *  this value reflects the maximum number of endpoints for the currently selected AVR model.\r
                                         */\r
-                                       #define ENDPOINT_TOTAL_ENDPOINTS      7\r
+                                       #define ENDPOINT_TOTAL_ENDPOINTS          7\r
                                #else\r
-                                       #define ENDPOINT_TOTAL_ENDPOINTS      5                 \r
+                                       #define ENDPOINT_TOTAL_ENDPOINTS          5                     \r
                                #endif\r
                        #else\r
-                               #define ENDPOINT_TOTAL_ENDPOINTS          1\r
+                               #define ENDPOINT_TOTAL_ENDPOINTS              1\r
                        #endif\r
                        \r
                /* Pseudo-Function Macros: */\r
                                        #define Endpoint_BytesInEndpoint()        (((uint16_t)UEBCHX << 8) | UEBCLX)                            \r
                                #elif defined(USB_SERIES_2_AVR)\r
                                        #define Endpoint_BytesInEndpoint()        UEBCLX\r
-                               #elif defined(USB_SERIES_UC3B_AVR)\r
-                                       #define Endpoint_BytesInEndpoint()        ((__AVR32_EPREG_X(UESTA0) & AVR32_USBB_BYCT_MASK) >> AVR32_USBB_BYCT)\r
                                #endif\r
                                \r
-                               #if defined(__AVR32__)\r
-                                       #if !defined(CONTROL_ONLY_DEVICE)\r
-                                               #define Endpoint_GetCurrentEndpoint()     USB_SelectedEPNumber\r
-                                               #define Endpoint_SelectEndpoint(epnum)    MACROS{ USB_SelectedEPNumber = (epnum); }MACROE                                       \r
-                                               #define Endpoint_IsReadWriteAllowed()     (__AVR32_EPREG_X(UESTA0) & AVR32_USBB_RWALL_MASK)\r
-                                       #else\r
-                                               #define Endpoint_GetCurrentEndpoint()     ENDPOINT_CONTROLEP\r
-                                               #define Endpoint_SelectEndpoint(epnum)    (void)(epnum)\r
-                                       #endif\r
-\r
-                                       #define Endpoint_ResetFIFO(epnum)             MACROS{ AVR32_USBB.uerst |=  (AVR32_USBB_EPRST0_MASK << (epnum)); \\r
-                                                                                             AVR32_USBB.uerst &= ~(AVR32_USBB_EPRST0_MASK << (epnum));     }MACROE\r
-                                       #define Endpoint_EnableEndpoint()             MACROS{ AVR32_USBB.uerst |=  (AVR32_USBB_UERST_EPEN0_MASK << USB_SelectedEPNumber); }MACROE\r
-                                       #define Endpoint_DisableEndpoint()            MACROS{ AVR32_USBB.uerst &= ~(AVR32_USBB_UERST_EPEN0_MASK << USB_SelectedEPNumber); }MACROE\r
-                                       #define Endpoint_IsEnabled()                        ((AVR32_USBB.uerst & (AVR32_USBB_UERST_EPEN0_MASK << USB_SelectedEPNumber)) ? true : false)\r
-                                       \r
-                                       #define Endpoint_IsConfigured()                     ((__AVR32_EPREG_X(UESTA0) & AVR32_USBB_UESTA0_CFGOK_MASK) ? true : false)\r
-                                       #define Endpoint_GetEndpointInterrupts()             (AVR32_USBB.UDINT >> AVR32_USBB_EP0INT)\r
-                                       #define Endpoint_HasEndpointInterrupted(n)          ((AVR32_USBB.UDINT & (AVR32_USBB_EP0INT << (n))) ? true : false)\r
-                                       #define Endpoint_IsINReady()                        ((__AVR32_EPREG_X(UESTA0) & AVR32_USBB_TXINI)  ? true : false)\r
-                                       #define Endpoint_IsOUTReceived()                    ((__AVR32_EPREG_X(UESTA0) & AVR32_USBB_RXOUTI) ? true : false)\r
-                                       #define Endpoint_IsSETUPReceived()                  ((__AVR32_EPREG_X(UESTA0) & AVR32_USBB_RXSTPI) ? true : false)\r
-                                       #define Endpoint_ClearSETUP()                 MACROS{ __AVR32_EPREG_X(UESTA0CLR) = AVR32_USBB_RXSTPIC;  }MACROE\r
-                                       #define Endpoint_ClearIN()                    MACROS{ __AVR32_EPREG_X(UESTA0CLR) = AVR32_USBB_TXINIC; \\r
-                                                                                                                                                 __AVR32_EPREG_X(UECON0CLR) = AVR32_USBB_FIFOCONC; }MACROE\r
-                                       #define Endpoint_ClearOUT()                   MACROS{ __AVR32_EPREG_X(UESTA0CLR) = AVR32_USBB_RXOUTI; \\r
-                                                                                                                                                 __AVR32_EPREG_X(UECON0CLR) = AVR32_USBB_FIFOCONC; }MACROE\r
-                                       #define Endpoint_StallTransaction()           MACROS{ __AVR32_EPREG_X(UECON0SET) = AVR32_USBB_STALLRQS; }MACROE\r
-                                       #define Endpoint_ClearStall()                 MACROS{ __AVR32_EPREG_X(UECON0CLR) = AVR32_USBB_STALLRQC; }MACROE\r
-                                       #define Endpoint_IsStalled()                        ((__AVR32_EPREG_X(UECON0) & AVR32_USBB_STALLRQ) ? true : false)\r
-                                       #define Endpoint_ResetDataToggle()            MACROS{ __AVR32_EPREG_X(UECON0CLR) = AVR32_USBB_RSTDTS;   }MACROE\r
-                                       #define Endpoint_GetEndpointDirection()       ((__AVR32_EPREG_X(UECFG0) & ENDPOINT_DIR_IN) ? true : false)\r
-                                       #define Endpoint_SetEndpointDirection(dir)    MACROS{ __AVR32_EPREG_X(UECFG0) = \\r
-                                                                                             ((__AVR32_EPREG_X(UECFG0) & ENDPOINT_DIR_IN) | (dir)); }MACROE\r
-                               #elif defined(__AVR__)\r
-                                       #if !defined(CONTROL_ONLY_DEVICE)\r
-                                               #define Endpoint_GetCurrentEndpoint()     (UENUM & ENDPOINT_EPNUM_MASK)\r
-                                               #define Endpoint_SelectEndpoint(epnum)    MACROS{ UENUM = (epnum); }MACROE\r
-                                               #define Endpoint_IsReadWriteAllowed()     ((UEINTX & (1 << RWAL)) ? true : false)\r
-                                       #else\r
-                                               #define Endpoint_GetCurrentEndpoint()     ENDPOINT_CONTROLEP\r
-                                               #define Endpoint_SelectEndpoint(epnum)    (void)(epnum)\r
-                                       #endif\r
-\r
-                                       #define Endpoint_ResetFIFO(epnum)             MACROS{ UERST = (1 << (epnum)); UERST = 0; }MACROE\r
-                                       #define Endpoint_EnableEndpoint()             MACROS{ UECONX |= (1 << EPEN); }MACROE\r
-                                       #define Endpoint_DisableEndpoint()            MACROS{ UECONX &= ~(1 << EPEN); }MACROE\r
-                                       #define Endpoint_IsEnabled()                  ((UECONX & (1 << EPEN)) ? true : false)\r
-                                       \r
-                                       #define Endpoint_IsConfigured()               ((UESTA0X & (1 << CFGOK)) ? true : false)\r
-                                       #define Endpoint_GetEndpointInterrupts()      UEINT\r
-                                       #define Endpoint_HasEndpointInterrupted(n)    ((UEINT & (1 << (n))) ? true : false)\r
-                                       #define Endpoint_IsINReady()                  ((UEINTX & (1 << TXINI))  ? true : false)\r
-                                       #define Endpoint_IsOUTReceived()              ((UEINTX & (1 << RXOUTI)) ? true : false)\r
-                                       #define Endpoint_IsSETUPReceived()            ((UEINTX & (1 << RXSTPI)) ? true : false)\r
-                                       #define Endpoint_ClearSETUP()                 MACROS{ UEINTX &= ~(1 << RXSTPI); }MACROE\r
-\r
-                                       #if !defined(CONTROL_ONLY_DEVICE)\r
-                                               #define Endpoint_ClearIN()                MACROS{ uint8_t Temp = UEINTX; UEINTX = (Temp & ~(1 << TXINI)); \\r
-                                                                                                                                                 UEINTX = (Temp & ~(1 << FIFOCON)); }MACROE\r
-                                               #define Endpoint_ClearOUT()               MACROS{ uint8_t Temp = UEINTX; UEINTX = (Temp & ~(1 << RXOUTI)); \\r
-                                                                                                                                                 UEINTX = (Temp & ~(1 << FIFOCON)); }MACROE\r
-                                       #else\r
-                                               #define Endpoint_ClearIN()                MACROS{ UEINTX &= ~(1 << TXINI); }MACROE\r
-                                               #define Endpoint_ClearOUT()               MACROS{ UEINTX &= ~(1 << RXOUTI); }MACROE                     \r
-                                       #endif\r
-\r
-                                       #define Endpoint_StallTransaction()           MACROS{ UECONX |= (1 << STALLRQ); }MACROE\r
-                                       #define Endpoint_ClearStall()                 MACROS{ UECONX |= (1 << STALLRQC); }MACROE\r
-                                       #define Endpoint_IsStalled()                  ((UECONX & (1 << STALLRQ)) ? true : false)\r
-                                       #define Endpoint_ResetDataToggle()            MACROS{ UECONX |= (1 << RSTDT); }MACROE\r
-                                       #define Endpoint_GetEndpointDirection()       (UECFG0X & ENDPOINT_DIR_IN)\r
-                                       #define Endpoint_SetEndpointDirection(dir)    MACROS{ UECFG0X = ((UECFG0X & ~ENDPOINT_DIR_IN) | (dir)); }MACROE                         \r
+                               #if !defined(CONTROL_ONLY_DEVICE)\r
+                                       #define Endpoint_GetCurrentEndpoint()     (UENUM & ENDPOINT_EPNUM_MASK)\r
+                               #else\r
+                                       #define Endpoint_GetCurrentEndpoint()     ENDPOINT_CONTROLEP\r
                                #endif\r
+                               \r
+                               #if !defined(CONTROL_ONLY_DEVICE)\r
+                                       #define Endpoint_SelectEndpoint(epnum)    MACROS{ UENUM = (epnum); }MACROE\r
+                               #else\r
+                                       #define Endpoint_SelectEndpoint(epnum)    (void)(epnum)\r
+                               #endif\r
+\r
+                               #define Endpoint_ResetFIFO(epnum)             MACROS{ UERST = (1 << (epnum)); UERST = 0; }MACROE\r
+\r
+                               #define Endpoint_EnableEndpoint()             MACROS{ UECONX |= (1 << EPEN); }MACROE\r
+\r
+                               #define Endpoint_DisableEndpoint()            MACROS{ UECONX &= ~(1 << EPEN); }MACROE\r
+\r
+                               #define Endpoint_IsEnabled()                  ((UECONX & (1 << EPEN)) ? true : false)\r
+\r
+                               #if !defined(CONTROL_ONLY_DEVICE)\r
+                                       #define Endpoint_IsReadWriteAllowed()     ((UEINTX & (1 << RWAL)) ? true : false)\r
+                               #endif\r
+                               \r
+                               #define Endpoint_IsConfigured()               ((UESTA0X & (1 << CFGOK)) ? true : false)\r
+\r
+                               #define Endpoint_GetEndpointInterrupts()      UEINT\r
+\r
+                               #define Endpoint_HasEndpointInterrupted(n)    ((UEINT & (1 << (n))) ? true : false)\r
+                               \r
+                               #define Endpoint_IsINReady()                  ((UEINTX & (1 << TXINI))  ? true : false)\r
+                               \r
+                               #define Endpoint_IsOUTReceived()              ((UEINTX & (1 << RXOUTI)) ? true : false)\r
+\r
+                               #define Endpoint_IsSETUPReceived()            ((UEINTX & (1 << RXSTPI)) ? true : false)\r
+\r
+                               #define Endpoint_ClearSETUP()                 MACROS{ UEINTX &= ~(1 << RXSTPI); }MACROE\r
+\r
+                               #if !defined(CONTROL_ONLY_DEVICE)\r
+                                       #define Endpoint_ClearIN()                MACROS{ uint8_t Temp = UEINTX; UEINTX = (Temp & ~(1 << TXINI)); \\r
+                                                                                         UEINTX = (Temp & ~(1 << FIFOCON)); }MACROE\r
+                               #else\r
+                                       #define Endpoint_ClearIN()                MACROS{ UEINTX &= ~(1 << TXINI); }MACROE\r
+                               #endif\r
+\r
+                               #if !defined(CONTROL_ONLY_DEVICE)\r
+                                       #define Endpoint_ClearOUT()               MACROS{ uint8_t Temp = UEINTX; UEINTX = (Temp & ~(1 << RXOUTI)); \\r
+                                                                                         UEINTX = (Temp & ~(1 << FIFOCON)); }MACROE\r
+                               #else\r
+                                       #define Endpoint_ClearOUT()               MACROS{ UEINTX &= ~(1 << RXOUTI); }MACROE                     \r
+                               #endif\r
+\r
+                               #define Endpoint_StallTransaction()           MACROS{ UECONX |= (1 << STALLRQ); }MACROE\r
+\r
+                               #define Endpoint_ClearStall()                 MACROS{ UECONX |= (1 << STALLRQC); }MACROE\r
+\r
+                               #define Endpoint_IsStalled()                  ((UECONX & (1 << STALLRQ)) ? true : false)\r
+\r
+                               #define Endpoint_ResetDataToggle()            MACROS{ UECONX |= (1 << RSTDT); }MACROE\r
+                               \r
+                               #define Endpoint_GetEndpointDirection()       (UECFG0X & ENDPOINT_DIR_IN)\r
+                               \r
+                               #define Endpoint_SetEndpointDirection(dir)    MACROS{ UECFG0X = ((UECFG0X & ~ENDPOINT_DIR_IN) | (dir)); }MACROE\r
                        #endif\r
 \r
                /* Enums: */\r
                        static inline uint8_t Endpoint_Read_Byte(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;\r
                        static inline uint8_t Endpoint_Read_Byte(void)\r
                        {\r
-                               #if defined(__AVR32__)\r
-                               return __AVR32_EPREG_X(UEDAT0);\r
-                               #elif defined(__AVR__)\r
                                return UEDATX;\r
-                               #endif\r
                        }\r
 \r
                        /** Writes one byte from the currently selected endpoint's bank, for IN direction endpoints.\r
                        static inline void Endpoint_Write_Byte(const uint8_t Byte) ATTR_ALWAYS_INLINE;\r
                        static inline void Endpoint_Write_Byte(const uint8_t Byte)\r
                        {\r
-                               #if defined(__AVR32__)\r
-                               __AVR32_EPREG_X(UEDAT0) = Byte;\r
-                               #elif defined(__AVR__)\r
                                UEDATX = Byte;\r
-                               #endif\r
                        }\r
 \r
                        /** Discards one byte from the currently selected endpoint's bank, for OUT direction endpoints.\r
                        {\r
                                uint8_t Dummy;\r
                                \r
-                               #if defined(__AVR32__)\r
-                               Dummy = __AVR32_EPREG_X(UEDAT0);\r
-                               #elif defined(__AVR__)\r
                                Dummy = UEDATX;\r
-                               #endif\r
                        }\r
                        \r
                        /** Reads two bytes from the currently selected endpoint's bank in little endian format, for OUT\r
                                        uint8_t  Bytes[2];\r
                                } Data;\r
                                \r
-                               #if defined(__AVR32__)\r
-                               Data.Bytes[0] = __AVR32_EPREG_X(UEDAT0);\r
-                               Data.Bytes[1] = __AVR32_EPREG_X(UEDAT0);\r
-                               #elif defined(__AVR__)\r
                                Data.Bytes[0] = UEDATX;\r
                                Data.Bytes[1] = UEDATX;\r
-                               #endif\r
                        \r
                                return Data.Word;\r
                        }\r
                                        uint8_t  Bytes[2];\r
                                } Data;\r
                                \r
-                               #if defined(__AVR32__)\r
-                               Data.Bytes[1] = __AVR32_EPREG_X(UEDAT0);\r
-                               Data.Bytes[0] = __AVR32_EPREG_X(UEDAT0);\r
-                               #elif defined(__AVR__)\r
                                Data.Bytes[1] = UEDATX;\r
                                Data.Bytes[0] = UEDATX;\r
-                               #endif\r
                        \r
                                return Data.Word;\r
                        }\r
                        static inline void Endpoint_Write_Word_LE(const uint16_t Word) ATTR_ALWAYS_INLINE;\r
                        static inline void Endpoint_Write_Word_LE(const uint16_t Word)\r
                        {\r
-                               #if defined(__AVR32__)\r
-                               __AVR32_EPREG_X(UEDAT0) = (Word & 0xFF);\r
-                               __AVR32_EPREG_X(UEDAT0) = (Word >> 8);\r
-                               #elif defined(__AVR__)\r
                                UEDATX = (Word & 0xFF);\r
                                UEDATX = (Word >> 8);\r
-                               #endif\r
                        }\r
                        \r
                        /** Writes two bytes to the currently selected endpoint's bank in big endian format, for IN\r
                        static inline void Endpoint_Write_Word_BE(const uint16_t Word) ATTR_ALWAYS_INLINE;\r
                        static inline void Endpoint_Write_Word_BE(const uint16_t Word)\r
                        {\r
-                               #if defined(__AVR32__)\r
-                               __AVR32_EPREG_X(UEDAT0) = (Word >> 8);\r
-                               __AVR32_EPREG_X(UEDAT0) = (Word & 0xFF);\r
-                               #elif defined(__AVR__)\r
                                UEDATX = (Word >> 8);\r
                                UEDATX = (Word & 0xFF);\r
-                               #endif\r
                        }\r
 \r
                        /** Discards two bytes from the currently selected endpoint's bank, for OUT direction endpoints.\r
                        {\r
                                uint8_t Dummy;\r
                                \r
-                               #if defined(__AVR32__)\r
-                               Dummy = __AVR32_EPREG_X(UEDAT0);\r
-                               Dummy = __AVR32_EPREG_X(UEDAT0);\r
-                               #elif defined(__AVR__)\r
                                Dummy = UEDATX;\r
                                Dummy = UEDATX;\r
-                               #endif\r
                        }\r
 \r
                        /** Reads four bytes from the currently selected endpoint's bank in little endian format, for OUT\r
                                        uint8_t  Bytes[4];\r
                                } Data;\r
                                \r
-                               #if defined(__AVR32__)\r
-                               Data.Bytes[0] = __AVR32_EPREG_X(UEDAT0);\r
-                               Data.Bytes[1] = __AVR32_EPREG_X(UEDAT0);\r
-                               Data.Bytes[2] = __AVR32_EPREG_X(UEDAT0);\r
-                               Data.Bytes[3] = __AVR32_EPREG_X(UEDAT0);\r
-                               #elif defined(__AVR__)\r
                                Data.Bytes[0] = UEDATX;\r
                                Data.Bytes[1] = UEDATX;\r
                                Data.Bytes[2] = UEDATX;\r
                                Data.Bytes[3] = UEDATX;\r
-                               #endif\r
                        \r
                                return Data.DWord;\r
                        }\r
                                        uint8_t  Bytes[4];\r
                                } Data;\r
                                \r
-                               #if defined(__AVR32__)\r
-                               Data.Bytes[3] = __AVR32_EPREG_X(UEDAT0);\r
-                               Data.Bytes[2] = __AVR32_EPREG_X(UEDAT0);\r
-                               Data.Bytes[1] = __AVR32_EPREG_X(UEDAT0);\r
-                               Data.Bytes[0] = __AVR32_EPREG_X(UEDAT0);\r
-                               #elif defined(__AVR__)\r
                                Data.Bytes[3] = UEDATX;\r
                                Data.Bytes[2] = UEDATX;\r
                                Data.Bytes[1] = UEDATX;\r
                                Data.Bytes[0] = UEDATX;\r
-                               #endif\r
                        \r
                                return Data.DWord;\r
                        }\r
                        static inline void Endpoint_Write_DWord_LE(const uint32_t DWord) ATTR_ALWAYS_INLINE;\r
                        static inline void Endpoint_Write_DWord_LE(const uint32_t DWord)\r
                        {\r
-                               #if defined(__AVR32__)\r
-                               __AVR32_EPREG_X(UEDAT0) = (DWord &  0xFF);\r
-                               __AVR32_EPREG_X(UEDAT0) = (DWord >> 8);\r
-                               __AVR32_EPREG_X(UEDAT0) = (DWord >> 16);\r
-                               __AVR32_EPREG_X(UEDAT0) = (DWord >> 24);\r
-                               #elif defined(__AVR__)\r
                                UEDATX = (DWord &  0xFF);\r
                                UEDATX = (DWord >> 8);\r
                                UEDATX = (DWord >> 16);\r
                                UEDATX = (DWord >> 24);\r
-                               #endif\r
                        }\r
                        \r
                        /** Writes four bytes to the currently selected endpoint's bank in big endian format, for IN\r
                        static inline void Endpoint_Write_DWord_BE(const uint32_t DWord) ATTR_ALWAYS_INLINE;\r
                        static inline void Endpoint_Write_DWord_BE(const uint32_t DWord)\r
                        {\r
-                               #if defined(__AVR32__)\r
-                               __AVR32_EPREG_X(UEDAT0) = (DWord >> 24);\r
-                               __AVR32_EPREG_X(UEDAT0) = (DWord >> 16);\r
-                               __AVR32_EPREG_X(UEDAT0) = (DWord >> 8);\r
-                               __AVR32_EPREG_X(UEDAT0) = (DWord &  0xFF);\r
-                               #elif defined(__AVR__)\r
                                UEDATX = (DWord >> 24);\r
                                UEDATX = (DWord >> 16);\r
                                UEDATX = (DWord >> 8);\r
                                UEDATX = (DWord &  0xFF);\r
-                               #endif\r
                        }\r
 \r
                        /** Discards four bytes from the currently selected endpoint's bank, for OUT direction endpoints.       \r
                        {\r
                                uint8_t Dummy;\r
                                \r
-                               #if defined(__AVR32__)\r
-                               Dummy = __AVR32_EPREG_X(UEDAT0);\r
-                               Dummy = __AVR32_EPREG_X(UEDAT0);\r
-                               Dummy = __AVR32_EPREG_X(UEDAT0);\r
-                               Dummy = __AVR32_EPREG_X(UEDAT0);\r
-                               #elif defined(__AVR__)\r
                                Dummy = UEDATX;\r
                                Dummy = UEDATX;\r
                                Dummy = UEDATX;\r
                                Dummy = UEDATX;\r
-                               #endif\r
                        }\r
 \r
                /* External Variables: */\r
                         *  endpoint numbers can handle different maximum packet sizes - refer to the chosen USB AVR's\r
                         *  datasheet to determine the maximum bank size for each endpoint.\r
                         *\r
-                        *  The banking mode must be a ENDPOINT_BANK_* mask.\r
+                        *  The banking mode may be either \ref ENDPOINT_BANK_SINGLE or \ref ENDPOINT_BANK_DOUBLE.\r
                         *\r
                         *  \note The default control endpoint does not have to be manually configured, as it is automatically\r
                         *  configured by the library internally.\r
                         *\r
                         *  \return Boolean true if the configuration succeeded, false otherwise\r
                         */\r
-                       bool Endpoint_ConfigureEndpoint(const uintN_t  Number, const uintN_t Type, const uintN_t Direction,\r
-                                                       const uint16_t Size, const uintN_t Banks);\r
+                       bool Endpoint_ConfigureEndpoint(const uint8_t  Number, const uint8_t Type, const uint8_t Direction,\r
+                                                       const uint16_t Size, const uint8_t Banks);\r
 \r
                        /** Spin-loops until the currently selected non-control endpoint is ready for the next packet of data\r
                         *  to be read or written to it.\r
                         *  \param[in] Length    Number of bytes to read for the currently selected endpoint into the buffer.\r
                         *  \param[in] Callback  Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
                         *\r
-                        *  \note Not available on AVR32 UC3B targets.\r
-                        *\r
                         *  \return A value from the \ref Endpoint_Stream_RW_ErrorCodes_t enum.\r
                         */\r
                        uint8_t Endpoint_Write_EStream_LE(const void* Buffer, uint16_t Length __CALLBACK_PARAM) ATTR_NON_NULL_PTR_ARG(1);\r
                         *  \param[in] Length    Number of bytes to read for the currently selected endpoint into the buffer.\r
                         *  \param[in] Callback  Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
                         *\r
-                        *  \note Not available on AVR32 UC3B targets.\r
-                        *\r
                         *  \return A value from the \ref Endpoint_Stream_RW_ErrorCodes_t enum.\r
                         */\r
                        uint8_t Endpoint_Write_EStream_BE(const void* Buffer, uint16_t Length __CALLBACK_PARAM) ATTR_NON_NULL_PTR_ARG(1);\r
                         *  \param[in] Length    Number of bytes to send via the currently selected endpoint.\r
                         *  \param[in] Callback  Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
                         *\r
-                        *  \note Not available on AVR32 UC3B targets.\r
-                        *\r
                         *  \return A value from the \ref Endpoint_Stream_RW_ErrorCodes_t enum.\r
                         */\r
                        uint8_t Endpoint_Read_EStream_LE(void* Buffer, uint16_t Length __CALLBACK_PARAM) ATTR_NON_NULL_PTR_ARG(1);\r
                         *  \param[in] Length    Number of bytes to send via the currently selected endpoint.\r
                         *  \param[in] Callback  Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
                         *\r
-                        *  \note Not available on AVR32 UC3B targets.\r
-                        *\r
                         *  \return A value from the \ref Endpoint_Stream_RW_ErrorCodes_t enum.\r
                         */\r
                        uint8_t Endpoint_Read_EStream_BE(void* Buffer, uint16_t Length __CALLBACK_PARAM) ATTR_NON_NULL_PTR_ARG(1);\r
                         *  \param[in] Buffer  Pointer to the source data buffer to read from.\r
                         *  \param[in] Length  Number of bytes to read for the currently selected endpoint into the buffer.\r
                         *\r
-                        *  \note Not available on AVR32 UC3B targets.\r
-                        *\r
                         *  \return A value from the \ref Endpoint_ControlStream_RW_ErrorCodes_t enum.\r
                         */\r
                        uint8_t Endpoint_Write_Control_EStream_LE(const void* Buffer, uint16_t Length) ATTR_NON_NULL_PTR_ARG(1);\r
                         *  \param[in] Buffer  Pointer to the source data buffer to read from.\r
                         *  \param[in] Length  Number of bytes to read for the currently selected endpoint into the buffer.\r
                         *\r
-                        *  \note Not available on AVR32 UC3B targets.\r
-                        *\r
                         *  \return A value from the \ref Endpoint_ControlStream_RW_ErrorCodes_t enum.\r
                         */\r
                        uint8_t Endpoint_Write_Control_EStream_BE(const void* Buffer, uint16_t Length) ATTR_NON_NULL_PTR_ARG(1);\r
                         *  \param[out] Buffer  Pointer to the destination data buffer to write to.\r
                         *  \param[in] Length  Number of bytes to send via the currently selected endpoint.\r
                         *\r
-                        *  \note Not available on AVR32 UC3B targets.\r
-                        *\r
                         *  \return A value from the \ref Endpoint_ControlStream_RW_ErrorCodes_t enum.\r
                         */\r
                        uint8_t Endpoint_Read_Control_EStream_LE(void* Buffer, uint16_t Length) ATTR_NON_NULL_PTR_ARG(1);\r
                         *  \param[out] Buffer  Pointer to the destination data buffer to write to.\r
                         *  \param[in] Length  Number of bytes to send via the currently selected endpoint.\r
                         *\r
-                        *  \note Not available on AVR32 UC3B targets.\r
-                        *\r
                         *  \return A value from the \ref Endpoint_ControlStream_RW_ErrorCodes_t enum.\r
                         */\r
                        uint8_t Endpoint_Read_Control_EStream_BE(void* Buffer, uint16_t Length) ATTR_NON_NULL_PTR_ARG(1);               \r
        /* Private Interface - For use in library only: */\r
        #if !defined(__DOXYGEN__)\r
                /* Macros: */\r
-                       #if defined(__AVR32__)\r
-                               #define Endpoint_AllocateMemory()              MACROS{ __AVR32_EPREG_X(UECFG10) |=  AVR32_USBB_UECFG0_ALLOC_MASK; }MACROE\r
-                               #define Endpoint_DeallocateMemory()            MACROS{ __AVR32_EPREG_X(UECFG10) &= ~AVR32_USBB_UECFG0_ALLOC_MASK; }MACROE\r
-\r
-                               #define Endpoint_ConfigureEndpoint(Number, Type, Direction, Size, Banks)            \\r
-                                                                                                       Endpoint_ConfigureEndpoint_Prv((Number),        \\r
-                                                                                                                         (((Type) << AVR32_USBB_UECFG0_EPTYPE) | (Direction)), \\r
-                                                                                                                         (AVR32_USBB_UECFG0_ALLOC_MASK | (Banks) |             \\r
-                                                                                                                               (__builtin_constant_p(Size) ?       \\r
-                                                                                                                                Endpoint_BytesToEPSizeMask(Size) : \\r
-                                                                                                                                Endpoint_BytesToEPSizeMaskDynamic(Size))))\r
-                       #elif defined(__AVR__)\r
-                               #define Endpoint_AllocateMemory()              MACROS{ UECFG1X |=  (1 << ALLOC); }MACROE\r
-                               #define Endpoint_DeallocateMemory()            MACROS{ UECFG1X &= ~(1 << ALLOC); }MACROE\r
-\r
-                               #define Endpoint_ConfigureEndpoint(Number, Type, Direction, Size, Banks)            \\r
-                                                                                                       Endpoint_ConfigureEndpoint_Prv((Number),        \\r
-                                                                                                                         (((Type) << EPTYPE0) | (Direction)),  \\r
-                                                                                                                         ((1 << ALLOC) | (Banks) |             \\r
-                                                                                                                               (__builtin_constant_p(Size) ?       \\r
-                                                                                                                                Endpoint_BytesToEPSizeMask(Size) : \\r
-                                                                                                                                Endpoint_BytesToEPSizeMaskDynamic(Size))))\r
-                       #endif\r
+                       #define Endpoint_AllocateMemory()              MACROS{ UECFG1X |=  (1 << ALLOC); }MACROE\r
+                       #define Endpoint_DeallocateMemory()            MACROS{ UECFG1X &= ~(1 << ALLOC); }MACROE\r
                        \r
                        #define _ENDPOINT_GET_MAXSIZE(n)               _ENDPOINT_GET_MAXSIZE2(ENDPOINT_DETAILS_EP ## n)\r
                        #define _ENDPOINT_GET_MAXSIZE2(details)        _ENDPOINT_GET_MAXSIZE3(details)\r
                                #define ENDPOINT_DETAILS_EP4               64,  true\r
                                #define ENDPOINT_DETAILS_EP5               64,  true\r
                                #define ENDPOINT_DETAILS_EP6               64,  true\r
-                       #elif defined(USB_SERIES_UC3B_AVR)\r
-                               #define ENDPOINT_DETAILS_EP0               64,  false\r
-                               #define ENDPOINT_DETAILS_EP1               64,  true\r
-                               #define ENDPOINT_DETAILS_EP2               64,  true\r
-                               #define ENDPOINT_DETAILS_EP3               64,  true\r
-                               #define ENDPOINT_DETAILS_EP4               64,  true\r
-                               #define ENDPOINT_DETAILS_EP5               256, true\r
-                               #define ENDPOINT_DETAILS_EP6               256, true                            \r
-                       #elif defined(USB_SERIES_2_AVR)\r
+                       #else\r
                                #define ENDPOINT_DETAILS_EP0               64,  true\r
                                #define ENDPOINT_DETAILS_EP1               64,  false\r
                                #define ENDPOINT_DETAILS_EP2               64,  false\r
                                #define ENDPOINT_DETAILS_EP4               64,  true                    \r
                        #endif\r
 \r
+                       #define Endpoint_ConfigureEndpoint(Number, Type, Direction, Size, Banks)            \\r
+                                                           Endpoint_ConfigureEndpoint_Prv((Number),        \\r
+                                                                     (((Type) << EPTYPE0) | (Direction)),  \\r
+                                                                     ((1 << ALLOC) | (Banks) |             \\r
+                                                                       (__builtin_constant_p(Size) ?       \\r
+                                                                        Endpoint_BytesToEPSizeMask(Size) : \\r
+                                                                        Endpoint_BytesToEPSizeMaskDynamic(Size))))\r
+                                                                                                       \r
                /* Function Prototypes: */\r
                        void    Endpoint_ClearEndpoints(void);\r
-                       uintN_t Endpoint_BytesToEPSizeMaskDynamic(const uint16_t Size);\r
-                       bool    Endpoint_ConfigureEndpoint_Prv(const uintN_t Number, const uintN_t UECFG0XData, const uintN_t UECFG1XData);\r
+                       uint8_t Endpoint_BytesToEPSizeMaskDynamic(const uint16_t Size);\r
+                       bool    Endpoint_ConfigureEndpoint_Prv(const uint8_t Number, const uint8_t UECFG0XData, const uint8_t UECFG1XData);\r
                        \r
                /* Inline Functions: */\r
-                       static inline uintN_t Endpoint_BytesToEPSizeMask(const uint16_t Bytes) ATTR_WARN_UNUSED_RESULT ATTR_CONST ATTR_ALWAYS_INLINE;\r
-                       static inline uintN_t Endpoint_BytesToEPSizeMask(const uint16_t Bytes)\r
+                       static inline uint8_t Endpoint_BytesToEPSizeMask(const uint16_t Bytes) ATTR_WARN_UNUSED_RESULT ATTR_CONST ATTR_ALWAYS_INLINE;\r
+                       static inline uint8_t Endpoint_BytesToEPSizeMask(const uint16_t Bytes)\r
                        {\r
-                               #if defined(__AVR32__)\r
-                               uint8_t  MaskVal    = 0;\r
-                               uint16_t CheckBytes = 8;\r
-                               \r
-                               while (CheckBytes < Bytes)\r
-                               {\r
-                                       MaskVal++;\r
-                                       CheckBytes <<= 1;\r
-                               }\r
-                               \r
-                               return (MaskVal << AVR32_USBB_EPSIZE);\r
-                               #else\r
                                uint8_t  MaskVal    = 0;\r
                                uint16_t CheckBytes = 8;\r
                                \r
                                }\r
                                \r
                                return (MaskVal << EPSIZE0);\r
-                               #endif\r
                        }\r
 \r
        #endif\r
index 82a90d2..5672dd5 100644 (file)
 #define __USBHOST_H__\r
 \r
        /* Includes: */\r
-               #if defined(__AVR32__)\r
-                       #include <avr32/io.h>\r
-                       #include <stdint.h>\r
-                       #include <stdbool.h>\r
-               #elif defined(__AVR__)\r
-                       #include <avr/io.h>\r
-                       #include <stdbool.h>\r
-                       #include <util/delay.h>\r
-               #endif\r
-               \r
+               #include <avr/io.h>\r
+               #include <stdbool.h>\r
+               #include <util/delay.h>\r
+\r
                #include "../../../Common/Common.h"\r
                #include "../HighLevel/USBInterrupt.h"\r
                #include "../HighLevel/StdDescriptors.h"\r
@@ -63,7 +57,7 @@
 \r
        /* Preprocessor Checks: */\r
                #if !defined(__INCLUDE_FROM_USB_DRIVER)\r
-                       #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.\r
+                       #error Do not include this file directly. Include LUFA/Drivers/USB.h instead.\r
                #endif\r
                \r
        /* Public Interface - May be used in end-application: */\r
                                 */\r
                                static inline bool USB_Host_IsResumeFromWakeupRequestSent(void);\r
                        #else\r
-                               #if defined(__AVR32__)\r
-                                       #define USB_Host_ResetBus()                MACROS{ AVR32_USBB.UHCON.reset = true;   }MACROE\r
-                                       #define USB_Host_IsBusResetComplete()              AVR32_USBB.UHCON.reset\r
-                                       #define USB_Host_ResumeBus()               MACROS{ AVR32_USBB.UHCON.sofen = true;   }MACROE \r
-                                       #define USB_Host_SuspendBus()              MACROS{ AVR32_USBB.UHCON.sofen = false;  }MACROE \r
-                                       #define USB_Host_IsBusSuspended()                  AVR32_USBB.UHCON.sofen\r
-                                       #define USB_Host_IsDeviceFullSpeed()              (AVR32_USBB.USBSTA.speed == 0)   \r
-                                       #define USB_Host_IsRemoteWakeupSent()              AVR32_USBB.UHINT.rxrsmi\r
-                                       #define USB_Host_ClearRemoteWakeupSent()   MACROS{ AVR32_USBB.UHINTCLR.rxrsmic = true; }MACROE\r
-                                       #define USB_Host_ResumeFromWakeupRequest() MACROS{ AVR32_USBB.UHCON.resume = true;     }MACROE\r
-                                       #define USB_Host_IsResumeFromWakeupRequestSent()   AVR32_USBB.UHCON.resume                      \r
-                               #elif defined(__AVR__)\r
-                                       #define USB_Host_ResetBus()                MACROS{ UHCON |=  (1 << RESET);          }MACROE\r
-                                       #define USB_Host_IsBusResetComplete()            ((UHCON &   (1 << RESET))  ? false : true)\r
-                                       #define USB_Host_ResumeBus()               MACROS{ UHCON |=  (1 << SOFEN);          }MACROE \r
-                                       #define USB_Host_SuspendBus()              MACROS{ UHCON &= ~(1 << SOFEN);          }MACROE \r
-                                       #define USB_Host_IsBusSuspended()                ((UHCON &   (1 << SOFEN))  ? false : true)\r
-                                       #define USB_Host_IsDeviceFullSpeed()             ((USBSTA &  (1 << SPEED))  ? true : false)\r
-                                       #define USB_Host_IsRemoteWakeupSent()            ((UHINT &   (1 << RXRSMI)) ? true : false)\r
-                                       #define USB_Host_ClearRemoteWakeupSent()   MACROS{ UHINT &= ~(1 << RXRSMI);         }MACROE\r
-                                       #define USB_Host_ResumeFromWakeupRequest() MACROS{ UHCON |=  (1 << RESUME);         }MACROE\r
-                                       #define USB_Host_IsResumeFromWakeupRequestSent() ((UHCON &   (1 << RESUME)) ? false : true)\r
-                               #endif\r
+                               #define USB_Host_ResetBus()                MACROS{ UHCON |=  (1 << RESET);          }MACROE\r
+\r
+                               #define USB_Host_IsBusResetComplete()      ((UHCON &   (1 << RESET)) ? false : true)\r
+\r
+                               #define USB_Host_ResumeBus()               MACROS{ UHCON |=  (1 << SOFEN);          }MACROE \r
+\r
+                               #define USB_Host_SuspendBus()              MACROS{ UHCON &= ~(1 << SOFEN);          }MACROE \r
+                               \r
+                               #define USB_Host_IsBusSuspended()                ((UHCON &   (1 << SOFEN)) ? false : true)\r
+                       \r
+                               #define USB_Host_IsDeviceFullSpeed()             ((USBSTA &  (1 << SPEED)) ? true : false)\r
+\r
+                               #define USB_Host_IsRemoteWakeupSent()            ((UHINT &   (1 << RXRSMI)) ? true : false)\r
+\r
+                               #define USB_Host_ClearRemoteWakeupSent()   MACROS{ UHINT &= ~(1 << RXRSMI);         }MACROE\r
+\r
+                               #define USB_Host_ResumeFromWakeupRequest() MACROS{ UHCON |=  (1 << RESUME);         }MACROE\r
+                               \r
+                               #define USB_Host_IsResumeFromWakeupRequestSent() ((UHCON &   (1 << RESUME)) ? false : true)\r
                        #endif\r
 \r
                /* Function Prototypes: */\r
        /* Private Interface - For use in library only: */\r
        #if !defined(__DOXYGEN__)\r
                /* Macros: */\r
-                       #if defined(__AVR32__)\r
-                               #define USB_Host_HostMode_On()          MACROS{ AVR32_USBB.USBCON.uimod = false;  }MACROE\r
-                               #define USB_Host_HostMode_Off()         MACROS{ AVR32_USBB.USBCON.uimod = true;   }MACROE\r
-\r
-                               #define USB_Host_VBUS_Auto_Enable()     MACROS{ OTGCON &= ~(1 << VBUSHWC); UHWCON |=  (1 << UVCONE);                   }MACROE\r
-                               #define USB_Host_VBUS_Manual_Enable()   MACROS{ OTGCON |=  (1 << VBUSHWC); UHWCON &= ~(1 << UVCONE); DDRE |= (1 << 7); }MACROE\r
+                       #define USB_Host_HostMode_On()          MACROS{ USBCON |=  (1 << HOST);           }MACROE\r
+                       #define USB_Host_HostMode_Off()         MACROS{ USBCON &= ~(1 << HOST);           }MACROE\r
 \r
-                               #define USB_Host_VBUS_Auto_On()         MACROS{ OTGCON |= (1 << VBUSREQ);         }MACROE\r
-                               #define USB_Host_VBUS_Manual_On()       MACROS{ PORTE  |= (1 << 7);               }MACROE\r
+                       #define USB_Host_VBUS_Auto_Enable()     MACROS{ OTGCON &= ~(1 << VBUSHWC); UHWCON |=  (1 << UVCONE);                   }MACROE\r
+                       #define USB_Host_VBUS_Manual_Enable()   MACROS{ OTGCON |=  (1 << VBUSHWC); UHWCON &= ~(1 << UVCONE); DDRE |= (1 << 7); }MACROE\r
 \r
-                               #define USB_Host_VBUS_Auto_Off()        MACROS{ OTGCON |=  (1 << VBUSRQC);        }MACROE\r
-                               #define USB_Host_VBUS_Manual_Off()      MACROS{ PORTE  &= ~(1 << 7);              }MACROE\r
+                       #define USB_Host_VBUS_Auto_On()         MACROS{ OTGCON |= (1 << VBUSREQ);         }MACROE\r
+                       #define USB_Host_VBUS_Manual_On()       MACROS{ PORTE  |= (1 << 7);               }MACROE\r
 \r
-                               #define USB_Host_SetDeviceAddress(addr) MACROS{ UHADDR  =  ((addr) & 0x7F);       }MACROE                       \r
-                       #elif defined(__AVR__)\r
-                               #define USB_Host_HostMode_On()          MACROS{ USBCON |=  (1 << HOST);           }MACROE\r
-                               #define USB_Host_HostMode_Off()         MACROS{ USBCON &= ~(1 << HOST);           }MACROE\r
+                       #define USB_Host_VBUS_Auto_Off()        MACROS{ OTGCON |=  (1 << VBUSRQC);        }MACROE\r
+                       #define USB_Host_VBUS_Manual_Off()      MACROS{ PORTE  &= ~(1 << 7);              }MACROE\r
 \r
-                               #define USB_Host_VBUS_Auto_Enable()     MACROS{ OTGCON &= ~(1 << VBUSHWC); UHWCON |=  (1 << UVCONE);                   }MACROE\r
-                               #define USB_Host_VBUS_Manual_Enable()   MACROS{ OTGCON |=  (1 << VBUSHWC); UHWCON &= ~(1 << UVCONE); DDRE |= (1 << 7); }MACROE\r
+                       #define USB_Host_SetDeviceAddress(addr) MACROS{ UHADDR  =  ((addr) & 0x7F);       }MACROE\r
 \r
-                               #define USB_Host_VBUS_Auto_On()         MACROS{ OTGCON |= (1 << VBUSREQ);         }MACROE\r
-                               #define USB_Host_VBUS_Manual_On()       MACROS{ PORTE  |= (1 << 7);               }MACROE\r
-\r
-                               #define USB_Host_VBUS_Auto_Off()        MACROS{ OTGCON |=  (1 << VBUSRQC);        }MACROE\r
-                               #define USB_Host_VBUS_Manual_Off()      MACROS{ PORTE  &= ~(1 << 7);              }MACROE\r
-\r
-                               #define USB_Host_SetDeviceAddress(addr) MACROS{ UHADDR  =  ((addr) & 0x7F);       }MACROE\r
-                       #endif\r
-                       \r
                /* Enums: */\r
                        enum USB_Host_WaitMSErrorCodes_t\r
                        {\r
index 5bf228e..1a85cf6 100644 (file)
 #define __HOSTCHAPTER9_H__\r
 \r
        /* Includes: */\r
-               #if defined(__AVR32__)\r
-                       #include <avr32/io.h>\r
-                       #include <stdint.h>\r
-                       #include <stdbool.h>\r
-               #elif defined(__AVR__)\r
-                       #include <avr/io.h>\r
-                       #include <stdbool.h>\r
-               #endif\r
+               #include <avr/io.h>\r
+               #include <stdbool.h>\r
                \r
                #include "LowLevel.h"\r
                #include "../HighLevel/USBMode.h"\r
@@ -52,7 +46,7 @@
 \r
        /* Preprocessor Checks: */\r
                #if !defined(__INCLUDE_FROM_USB_DRIVER)\r
-                       #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.\r
+                       #error Do not include this file directly. Include LUFA/Drivers/USB.h instead.\r
                #endif\r
                \r
        /* Public Interface - May be used in end-application: */\r
index 0d220ce..f4f277c 100644 (file)
@@ -39,10 +39,6 @@ volatile uint8_t USB_CurrentMode = USB_MODE_NONE;
 volatile uint8_t USB_Options;\r
 #endif\r
 \r
-#if defined(__AVR32__) && !defined(CONTROL_ONLY_DEVICE)\r
-uint8_t USB_SelectedEPNumber;\r
-#endif\r
-\r
 void USB_Init(\r
                #if defined(USB_CAN_BE_BOTH)\r
                const uint8_t Mode\r
@@ -59,10 +55,6 @@ void USB_Init(
                #endif\r
                )\r
 {\r
-       #if defined(__AVR32__)\r
-       USB_SelectedEPNumber = 0;\r
-       #endif\r
-\r
        #if defined(USB_CAN_BE_BOTH)\r
        USB_CurrentMode = Mode;\r
        #endif\r
index 3c98c6d..1a92d47 100644 (file)
 #ifndef __USBLOWLEVEL_H__\r
 #define __USBLOWLEVEL_H__\r
 \r
-       /* External Variables: */\r
-               #if defined(__AVR32__)\r
-                       #if !defined(CONTROL_ONLY_DEVICE)\r
-                               extern uint8_t USB_SelectedEPNumber;\r
-                       #else\r
-                               #define USB_SelectedEPNumber  0\r
-                       #endif\r
-               #endif\r
-       \r
        /* Includes: */\r
-               #if defined(__AVR32__)\r
-                       #include <avr32/io.h>\r
-                       #include <stdint.h>\r
-                       #include <stdbool.h>\r
-               #elif defined(__AVR__)\r
-                       #include <avr/io.h>\r
-                       #include <avr/interrupt.h>\r
-                       #include <stdbool.h>\r
-               #endif\r
-                               \r
+               #include <avr/io.h>\r
+               #include <avr/interrupt.h>\r
+               #include <stdbool.h>\r
+               \r
                #include "../HighLevel/USBMode.h"\r
 \r
                #include "../../../Common/Common.h"\r
 \r
        /* Preprocessor Checks and Defines: */\r
                #if !defined(__INCLUDE_FROM_USB_DRIVER)\r
-                       #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.\r
+                       #error Do not include this file directly. Include LUFA/Drivers/USB.h instead.\r
                #endif\r
-               \r
-               #if defined(__AVR32__)\r
-                       #define USB_PLL_PSC 0\r
-               #elif defined(__AVR__)\r
-                       #if !defined(F_CLOCK)\r
-                               #error F_CLOCK is not defined. You must define F_CLOCK to the frequency of the unprescaled input clock in your project makefile.\r
-                       #endif\r
-               \r
-                       #if (F_CLOCK == 8000000)\r
-                               #if (defined(__AVR_AT90USB82__) || defined(__AVR_AT90USB162__) || \\r
-                                        defined(__AVR_ATmega8U2__) || defined(__AVR_ATmega16U2__) || \\r
-                                        defined(__AVR_ATmega32U2__))\r
-                                       #define USB_PLL_PSC                0\r
-                               #elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))\r
-                                       #define USB_PLL_PSC                0\r
-                               #elif (defined(__AVR_AT90USB646__)  || defined(__AVR_AT90USB1286__) || defined(__AVR_ATmega32U6__))\r
-                                       #define USB_PLL_PSC                ((1 << PLLP1) | (1 << PLLP0))\r
-                               #elif (defined(__AVR_AT90USB647__)  || defined(__AVR_AT90USB1287__))\r
-                                       #define USB_PLL_PSC                ((1 << PLLP1) | (1 << PLLP0))\r
-                               #endif\r
-                       #elif (F_CLOCK == 16000000)\r
-                               #if (defined(__AVR_AT90USB82__) || defined(__AVR_AT90USB162__) || \\r
-                                        defined(__AVR_ATmega8U2__) || defined(__AVR_ATmega16U2__) || \\r
-                                        defined(__AVR_ATmega32U2__))\r
-                                       #define USB_PLL_PSC                (1 << PLLP0)\r
-                               #elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))\r
-                                       #define USB_PLL_PSC                (1 << PINDIV)\r
-                               #elif (defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_ATmega32U6__))\r
-                                       #define USB_PLL_PSC                ((1 << PLLP2) | (1 << PLLP1))\r
-                               #elif (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__))\r
-                                       #define USB_PLL_PSC                ((1 << PLLP2) | (1 << PLLP0))\r
-                               #endif\r
+\r
+               #if !defined(F_CLOCK)\r
+                       #error F_CLOCK is not defined. You must define F_CLOCK to the frequency of the unprescaled input clock in your project makefile.\r
+               #endif\r
+       \r
+               #if (F_CLOCK == 8000000)\r
+                       #if (defined(__AVR_AT90USB82__) || defined(__AVR_AT90USB162__) || \\r
+                            defined(__AVR_ATmega8U2__) || defined(__AVR_ATmega16U2__) || \\r
+                                defined(__AVR_ATmega32U2__))\r
+                               #define USB_PLL_PSC                0\r
+                       #elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))\r
+                               #define USB_PLL_PSC                0\r
+                       #elif (defined(__AVR_AT90USB646__)  || defined(__AVR_AT90USB1286__) || defined(__AVR_ATmega32U6__))\r
+                               #define USB_PLL_PSC                ((1 << PLLP1) | (1 << PLLP0))\r
+                       #elif (defined(__AVR_AT90USB647__)  || defined(__AVR_AT90USB1287__))\r
+                               #define USB_PLL_PSC                ((1 << PLLP1) | (1 << PLLP0))\r
                        #endif\r
-                       \r
-                       #if !defined(USB_PLL_PSC)\r
-                               #error No PLL prescale value available for chosen F_CLOCK value and AVR model.\r
+               #elif (F_CLOCK == 16000000)\r
+                       #if (defined(__AVR_AT90USB82__) || defined(__AVR_AT90USB162__) || \\r
+                            defined(__AVR_ATmega8U2__) || defined(__AVR_ATmega16U2__) || \\r
+                                defined(__AVR_ATmega32U2__))\r
+                               #define USB_PLL_PSC                (1 << PLLP0)\r
+                       #elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))\r
+                               #define USB_PLL_PSC                (1 << PINDIV)\r
+                       #elif (defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_ATmega32U6__))\r
+                               #define USB_PLL_PSC                ((1 << PLLP2) | (1 << PLLP1))\r
+                       #elif (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__))\r
+                               #define USB_PLL_PSC                ((1 << PLLP2) | (1 << PLLP0))\r
                        #endif\r
                #endif\r
                \r
+               #if !defined(USB_PLL_PSC)\r
+                       #error No PLL prescale value available for chosen F_CPU value and AVR model.\r
+               #endif\r
+               \r
        /* Public Interface - May be used in end-application: */\r
                /* Macros: */\r
                        /** Mode mask for the \ref USB_CurrentMode global. This indicates that the USB interface is currently not\r
                                 *\r
                                 *  \note This token is not available on AVR models which do not support both host and device modes.\r
                                 */\r
-                               #define USB_MODE_UID                   3\r
+                               #define USB_MODE_UID                       3\r
                        #endif\r
                        \r
                        /** Regulator disable option mask for \ref USB_Init(). This indicates that the internal 3.3V USB data pad\r
                                 *\r
                                 *  \note This token is not available on some AVR models which do not support hardware VBUS monitoring.\r
                                 */\r
-                               #define USB_VBUS_GetStatus()        ((USBSTA & (1 << VBUS)) ? true : false)\r
+                               #define USB_VBUS_GetStatus()             ((USBSTA & (1 << VBUS)) ? true : false)\r
                        #endif\r
 \r
                        /** Detaches the device from the USB bus. This has the effect of removing the device from any\r
                        #define USB_Controller_Disable()   MACROS{ USBCON  &= ~(1 << USBE);                 }MACROE\r
                        #define USB_Controller_Reset()     MACROS{ const uint8_t Temp = USBCON; USBCON = (Temp & ~(1 << USBE)); \\r
                                                                   USBCON = (Temp | (1 << USBE));           }MACROE\r
+       \r
                /* Inline Functions: */\r
                        #if defined(USB_CAN_BE_BOTH)\r
                        static inline uint8_t USB_GetUSBModeFromUID(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;\r
                        static inline uint8_t USB_GetUSBModeFromUID(void)\r
                        {\r
-                               #if defined(__AVR32__)\r
-                               if (AVR32_USBB.USBSTA.id)\r
-                                 return USB_MODE_DEVICE;\r
-                               else\r
-                                 return USB_MODE_HOST;                         \r
-                               #elif defined(__AVR__)\r
                                if (USBSTA & (1 << ID))\r
                                  return USB_MODE_DEVICE;\r
                                else\r
                                  return USB_MODE_HOST;\r
-                               #endif\r
                        }\r
                        #endif\r
                        \r
index 717b040..25cb180 100644 (file)
 #define __USBOTG_H__\r
 \r
        /* Includes: */\r
-               #if defined(__AVR32__)\r
-                       #include <avr32/io.h>\r
-                       #include <stdint.h>\r
-                       #include <stdbool.h>\r
-               #elif defined(__AVR__)\r
-                       #include <avr/io.h>\r
-                       #include <stdbool.h>\r
-               #endif\r
+               #include <avr/io.h>\r
+               #include <stdbool.h>\r
                \r
                #include "../../../Common/Common.h"\r
 \r
        /* Preprocessor Checks: */\r
                #if !defined(__INCLUDE_FROM_USB_DRIVER)\r
-                       #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.\r
+                       #error Do not include this file directly. Include LUFA/Drivers/USB.h instead.\r
                #endif\r
                \r
        /* Public Interface - May be used in end-application: */\r
index e6ac0e5..78c82e8 100644 (file)
@@ -226,15 +226,13 @@ uint8_t Pipe_Discard_Stream(uint16_t Length
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Pipe_Write_Byte(pgm_read_byte((uint8_t*)BufferPtr++))\r
 #include "Template/Template_Pipe_RW.c"\r
 \r
-#if defined(__AVR__)\r
-       #define  TEMPLATE_FUNC_NAME                    Pipe_Write_EStream_LE\r
-       #define  TEMPLATE_BUFFER_TYPE                  const void*\r
-       #define  TEMPLATE_TOKEN                        PIPE_TOKEN_OUT\r
-       #define  TEMPLATE_CLEAR_PIPE()                 Pipe_ClearOUT()\r
-       #define  TEMPLATE_BUFFER_OFFSET(Length)        0\r
-       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)     Pipe_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr++))\r
-       #include "Template/Template_Pipe_RW.c"\r
-#endif\r
+#define  TEMPLATE_FUNC_NAME                        Pipe_Write_EStream_LE\r
+#define  TEMPLATE_BUFFER_TYPE                      const void*\r
+#define  TEMPLATE_TOKEN                            PIPE_TOKEN_OUT\r
+#define  TEMPLATE_CLEAR_PIPE()                     Pipe_ClearOUT()\r
+#define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
+#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Pipe_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr++))\r
+#include "Template/Template_Pipe_RW.c"\r
 \r
 #define  TEMPLATE_FUNC_NAME                        Pipe_Write_Stream_BE\r
 #define  TEMPLATE_BUFFER_TYPE                      const void*\r
@@ -252,15 +250,13 @@ uint8_t Pipe_Discard_Stream(uint16_t Length
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Pipe_Write_Byte(pgm_read_byte((uint8_t*)BufferPtr--))\r
 #include "Template/Template_Pipe_RW.c"\r
 \r
-#if defined(__AVR__)\r
-       #define  TEMPLATE_FUNC_NAME                    Pipe_Write_EStream_BE\r
-       #define  TEMPLATE_BUFFER_TYPE                  const void*\r
-       #define  TEMPLATE_TOKEN                        PIPE_TOKEN_OUT\r
-       #define  TEMPLATE_CLEAR_PIPE()                 Pipe_ClearOUT()\r
-       #define  TEMPLATE_BUFFER_OFFSET(Length)        (Length - 1)\r
-       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)     Pipe_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr--))\r
-       #include "Template/Template_Pipe_RW.c"\r
-#endif\r
+#define  TEMPLATE_FUNC_NAME                        Pipe_Write_EStream_BE\r
+#define  TEMPLATE_BUFFER_TYPE                      const void*\r
+#define  TEMPLATE_TOKEN                            PIPE_TOKEN_OUT\r
+#define  TEMPLATE_CLEAR_PIPE()                     Pipe_ClearOUT()\r
+#define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
+#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         Pipe_Write_Byte(eeprom_read_byte((uint8_t*)BufferPtr--))\r
+#include "Template/Template_Pipe_RW.c"\r
 \r
 #define  TEMPLATE_FUNC_NAME                        Pipe_Read_Stream_LE\r
 #define  TEMPLATE_BUFFER_TYPE                      void*\r
@@ -270,15 +266,13 @@ uint8_t Pipe_Discard_Stream(uint16_t Length
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         *((uint8_t*)BufferPtr++) = Pipe_Read_Byte()\r
 #include "Template/Template_Pipe_RW.c"\r
 \r
-#if defined(__AVR__)\r
-       #define  TEMPLATE_FUNC_NAME                    Pipe_Read_EStream_LE\r
-       #define  TEMPLATE_BUFFER_TYPE                  void*\r
-       #define  TEMPLATE_TOKEN                        PIPE_TOKEN_IN\r
-       #define  TEMPLATE_CLEAR_PIPE()                 Pipe_ClearIN()\r
-       #define  TEMPLATE_BUFFER_OFFSET(Length)        0\r
-       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)     eeprom_write_byte((uint8_t*)BufferPtr++, Pipe_Read_Byte())\r
-       #include "Template/Template_Pipe_RW.c"\r
-#endif\r
+#define  TEMPLATE_FUNC_NAME                        Pipe_Read_EStream_LE\r
+#define  TEMPLATE_BUFFER_TYPE                      void*\r
+#define  TEMPLATE_TOKEN                            PIPE_TOKEN_IN\r
+#define  TEMPLATE_CLEAR_PIPE()                     Pipe_ClearIN()\r
+#define  TEMPLATE_BUFFER_OFFSET(Length)            0\r
+#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         eeprom_write_byte((uint8_t*)BufferPtr++, Pipe_Read_Byte())\r
+#include "Template/Template_Pipe_RW.c"\r
 \r
 #define  TEMPLATE_FUNC_NAME                        Pipe_Read_Stream_BE\r
 #define  TEMPLATE_BUFFER_TYPE                      void*\r
@@ -288,14 +282,12 @@ uint8_t Pipe_Discard_Stream(uint16_t Length
 #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         *((uint8_t*)BufferPtr--) = Pipe_Read_Byte()\r
 #include "Template/Template_Pipe_RW.c"\r
 \r
-#if defined(__AVR__)\r
-       #define  TEMPLATE_FUNC_NAME                    Pipe_Read_EStream_BE\r
-       #define  TEMPLATE_BUFFER_TYPE                  void*\r
-       #define  TEMPLATE_TOKEN                        PIPE_TOKEN_IN\r
-       #define  TEMPLATE_CLEAR_PIPE()                 Pipe_ClearIN()\r
-       #define  TEMPLATE_BUFFER_OFFSET(Length)        (Length - 1)\r
-       #define  TEMPLATE_TRANSFER_BYTE(BufferPtr)     eeprom_write_byte((uint8_t*)BufferPtr--, Pipe_Read_Byte())\r
-       #include "Template/Template_Pipe_RW.c"\r
-#endif\r
+#define  TEMPLATE_FUNC_NAME                        Pipe_Read_EStream_BE\r
+#define  TEMPLATE_BUFFER_TYPE                      void*\r
+#define  TEMPLATE_TOKEN                            PIPE_TOKEN_IN\r
+#define  TEMPLATE_CLEAR_PIPE()                     Pipe_ClearIN()\r
+#define  TEMPLATE_BUFFER_OFFSET(Length)            (Length - 1)\r
+#define  TEMPLATE_TRANSFER_BYTE(BufferPtr)         eeprom_write_byte((uint8_t*)BufferPtr--, Pipe_Read_Byte())\r
+#include "Template/Template_Pipe_RW.c"\r
 \r
 #endif\r
index ab11a55..3e25d49 100644 (file)
 #define __PIPE_H__\r
 \r
        /* Includes: */\r
-               #if defined(__AVR32__)\r
-                       #include <avr32/io.h>\r
-                       #include <stdint.h>\r
-                       #include <stdbool.h>\r
-               #elif defined(__AVR__)\r
-                       #include <avr/io.h>\r
-                       #include <avr/pgmspace.h>\r
-                       #include <avr/eeprom.h>\r
-                       #include <stdbool.h>\r
-               #endif\r
+               #include <avr/io.h>\r
+               #include <avr/pgmspace.h>\r
+               #include <avr/eeprom.h>\r
+               #include <stdbool.h>\r
 \r
                #include "../../../Common/Common.h"\r
-               #include "LowLevel.h"\r
                #include "../HighLevel/USBTask.h"\r
 \r
                #if !defined(NO_STREAM_CALLBACKS) || defined(__DOXYGEN__)\r
 \r
        /* Preprocessor Checks: */\r
                #if !defined(__INCLUDE_FROM_USB_DRIVER)\r
-                       #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.\r
+                       #error Do not include this file directly. Include LUFA/Drivers/USB.h instead.\r
                #endif\r
                \r
-               #if defined(__AVR32__) && !defined(__AVR32_EPREG_X)\r
-                       #define __AVR32_EPREG_X(x) ((volatile uint32_t*)AVR32_USBB_ ## x)[USB_SelectedEPNumber]                 \r
-               #endif\r
-\r
        /* Public Interface - May be used in end-application: */\r
                /* Macros: */\r
                        /** Mask for \ref Pipe_GetErrorFlags(), indicating that an overflow error occurred in the pipe on the received data. */\r
                        static inline uint8_t Pipe_Read_Byte(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;\r
                        static inline uint8_t Pipe_Read_Byte(void)\r
                        {\r
-                               #if defined(__AVR32__)\r
-                               return __AVR32_EPREG_X(UEDAT0);\r
-                               #elif defined(__AVR__)\r
                                return UPDATX;\r
-                               #endif\r
                        }\r
 \r
                        /** Writes one byte from the currently selected pipe's bank, for IN direction pipes.\r
                        static inline void Pipe_Write_Byte(const uint8_t Byte) ATTR_ALWAYS_INLINE;\r
                        static inline void Pipe_Write_Byte(const uint8_t Byte)\r
                        {\r
-                               #if defined(__AVR32__)\r
-                               __AVR32_EPREG_X(UEDAT0) = Byte;\r
-                               #elif defined(__AVR__)\r
                                UPDATX = Byte;\r
-                               #endif\r
                        }\r
 \r
                        /** Discards one byte from the currently selected pipe's bank, for OUT direction pipes.\r
                        {\r
                                uint8_t Dummy;\r
                                \r
-                               #if defined(__AVR32__)\r
-                               Dummy = __AVR32_EPREG_X(UEDAT0);\r
-                               #elif defined(__AVR__)\r
                                Dummy = UPDATX;\r
-                               #endif\r
                        }\r
                        \r
                        /** Reads two bytes from the currently selected pipe's bank in little endian format, for OUT\r
                                        uint8_t  Bytes[2];\r
                                } Data;\r
                                \r
-                               #if defined(__AVR32__)\r
-                               Data.Bytes[0] = __AVR32_EPREG_X(UEDAT0);\r
-                               Data.Bytes[1] = __AVR32_EPREG_X(UEDAT0);\r
-                               #elif defined(__AVR__)\r
                                Data.Bytes[0] = UPDATX;\r
                                Data.Bytes[1] = UPDATX;\r
-                               #endif\r
                        \r
                                return Data.Word;\r
                        }\r
                                        uint8_t  Bytes[2];\r
                                } Data;\r
                                \r
-                               #if defined(__AVR32__)\r
-                               Data.Bytes[1] = __AVR32_EPREG_X(UEDAT0);\r
-                               Data.Bytes[0] = __AVR32_EPREG_X(UEDAT0);\r
-                               #elif defined(__AVR__)\r
                                Data.Bytes[1] = UPDATX;\r
                                Data.Bytes[0] = UPDATX;\r
-                               #endif\r
                        \r
                                return Data.Word;\r
                        }\r
                        static inline void Pipe_Write_Word_LE(const uint16_t Word) ATTR_ALWAYS_INLINE;\r
                        static inline void Pipe_Write_Word_LE(const uint16_t Word)\r
                        {\r
-                               #if defined(__AVR32__)\r
-                               __AVR32_EPREG_X(UEDAT0) = (Word & 0xFF);\r
-                               __AVR32_EPREG_X(UEDAT0) = (Word >> 8);\r
-                               #elif defined(__AVR__)\r
                                UPDATX = (Word & 0xFF);\r
                                UPDATX = (Word >> 8);\r
-                               #endif\r
                        }\r
                        \r
                        /** Writes two bytes to the currently selected pipe's bank in big endian format, for IN\r
                        static inline void Pipe_Write_Word_BE(const uint16_t Word) ATTR_ALWAYS_INLINE;\r
                        static inline void Pipe_Write_Word_BE(const uint16_t Word)\r
                        {\r
-                               #if defined(__AVR32__)\r
-                               __AVR32_EPREG_X(UEDAT0) = (Word >> 8);\r
-                               __AVR32_EPREG_X(UEDAT0) = (Word & 0xFF);\r
-                               #elif defined(__AVR__)\r
                                UPDATX = (Word >> 8);\r
                                UPDATX = (Word & 0xFF);\r
-                               #endif\r
                        }\r
 \r
                        /** Discards two bytes from the currently selected pipe's bank, for OUT direction pipes.\r
                        {\r
                                uint8_t Dummy;\r
                                \r
-                               #if defined(__AVR32__)\r
-                               Dummy = __AVR32_EPREG_X(UEDAT0);\r
-                               Dummy = __AVR32_EPREG_X(UEDAT0);\r
-                               #elif defined(__AVR__)\r
                                Dummy = UPDATX;\r
                                Dummy = UPDATX;\r
-                               #endif\r
                        }\r
 \r
                        /** Reads four bytes from the currently selected pipe's bank in little endian format, for OUT\r
                                        uint8_t  Bytes[4];\r
                                } Data;\r
                                \r
-                               #if defined(__AVR32__)\r
-                               Data.Bytes[0] = __AVR32_EPREG_X(UEDAT0);\r
-                               Data.Bytes[1] = __AVR32_EPREG_X(UEDAT0);\r
-                               Data.Bytes[2] = __AVR32_EPREG_X(UEDAT0);\r
-                               Data.Bytes[3] = __AVR32_EPREG_X(UEDAT0);\r
-                               #elif defined(__AVR__)\r
                                Data.Bytes[0] = UPDATX;\r
                                Data.Bytes[1] = UPDATX;\r
                                Data.Bytes[2] = UPDATX;\r
                                Data.Bytes[3] = UPDATX;\r
-                               #endif\r
                        \r
                                return Data.DWord;\r
                        }\r
                                        uint8_t  Bytes[4];\r
                                } Data;\r
                                \r
-                               #if defined(__AVR32__)\r
-                               Data.Bytes[3] = __AVR32_EPREG_X(UEDAT0);\r
-                               Data.Bytes[2] = __AVR32_EPREG_X(UEDAT0);\r
-                               Data.Bytes[1] = __AVR32_EPREG_X(UEDAT0);\r
-                               Data.Bytes[0] = __AVR32_EPREG_X(UEDAT0);\r
-                               #elif defined(__AVR__)\r
                                Data.Bytes[3] = UPDATX;\r
                                Data.Bytes[2] = UPDATX;\r
                                Data.Bytes[1] = UPDATX;\r
                                Data.Bytes[0] = UPDATX;\r
-                               #endif\r
                        \r
                                return Data.DWord;\r
                        }\r
                        static inline void Pipe_Write_DWord_LE(const uint32_t DWord) ATTR_ALWAYS_INLINE;\r
                        static inline void Pipe_Write_DWord_LE(const uint32_t DWord)\r
                        {\r
-                               #if defined(__AVR32__)\r
-                               __AVR32_EPREG_X(UEDAT0) = (DWord &  0xFF);\r
-                               __AVR32_EPREG_X(UEDAT0) = (DWord >> 8);\r
-                               __AVR32_EPREG_X(UEDAT0) = (DWord >> 16);\r
-                               __AVR32_EPREG_X(UEDAT0) = (DWord >> 24);\r
-                               #elif defined(__AVR__)\r
                                UPDATX = (DWord &  0xFF);\r
                                UPDATX = (DWord >> 8);\r
                                UPDATX = (DWord >> 16);\r
                                UPDATX = (DWord >> 24);\r
-                               #endif\r
                        }\r
                        \r
                        /** Writes four bytes to the currently selected pipe's bank in big endian format, for IN\r
                        static inline void Pipe_Write_DWord_BE(const uint32_t DWord) ATTR_ALWAYS_INLINE;\r
                        static inline void Pipe_Write_DWord_BE(const uint32_t DWord)\r
                        {\r
-                               #if defined(__AVR32__)\r
-                               __AVR32_EPREG_X(UEDAT0) = (DWord >> 24);\r
-                               __AVR32_EPREG_X(UEDAT0) = (DWord >> 16);\r
-                               __AVR32_EPREG_X(UEDAT0) = (DWord >> 8);\r
-                               __AVR32_EPREG_X(UEDAT0) = (DWord &  0xFF);\r
-                               #elif defined(__AVR__)\r
                                UPDATX = (DWord >> 24);\r
                                UPDATX = (DWord >> 16);\r
                                UPDATX = (DWord >> 8);\r
                                UPDATX = (DWord &  0xFF);\r
-                               #endif\r
                        }                       \r
                        \r
                        /** Discards four bytes from the currently selected pipe's bank, for OUT direction pipes.       \r
                        {\r
                                uint8_t Dummy;\r
                                \r
-                               #if defined(__AVR32__)\r
-                               Dummy = __AVR32_EPREG_X(UEDAT0);\r
-                               Dummy = __AVR32_EPREG_X(UEDAT0);\r
-                               Dummy = __AVR32_EPREG_X(UEDAT0);\r
-                               Dummy = __AVR32_EPREG_X(UEDAT0);\r
-                               #elif defined(__AVR__)\r
                                Dummy = UPDATX;\r
                                Dummy = UPDATX;\r
                                Dummy = UPDATX;\r
                                Dummy = UPDATX;\r
-                               #endif\r
                        }\r
 \r
                /* External Variables: */\r
                         *  \param[in] Length    Number of bytes to read for the currently selected pipe into the buffer.\r
                         *  \param[in] Callback  Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
                         *\r
-                        *  \note Not available on AVR32 UC3B targets.\r
-                        *\r
                         *  \return A value from the \ref Pipe_Stream_RW_ErrorCodes_t enum.\r
                         */\r
                        uint8_t Pipe_Write_EStream_LE(const void* Buffer, uint16_t Length __CALLBACK_PARAM) ATTR_NON_NULL_PTR_ARG(1);\r
                         *  \param[in] Length    Number of bytes to read for the currently selected pipe into the buffer.\r
                         *  \param[in] Callback  Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
                         *\r
-                        *  \note Not available on AVR32 UC3B targets.\r
-                        *\r
                         *  \return A value from the \ref Pipe_Stream_RW_ErrorCodes_t enum.\r
                         */\r
                        uint8_t Pipe_Write_EStream_BE(const void* Buffer, uint16_t Length __CALLBACK_PARAM) ATTR_NON_NULL_PTR_ARG(1);\r
                         *  \param[in] Length    Number of bytes to read for the currently selected pipe to read from.\r
                         *  \param[in] Callback  Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
                         *\r
-                        *  \note Not available on AVR32 UC3B targets.\r
-                        *\r
                         *  \return A value from the \ref Pipe_Stream_RW_ErrorCodes_t enum.\r
                         */\r
                        uint8_t Pipe_Read_EStream_LE(void* Buffer, uint16_t Length __CALLBACK_PARAM) ATTR_NON_NULL_PTR_ARG(1);\r
                         *  \param[in] Length    Number of bytes to read for the currently selected pipe to read from.\r
                         *  \param[in] Callback  Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
                         *\r
-                        *  \note Not available on AVR32 UC3B targets.\r
-                        *\r
                         *  \return A value from the \ref Pipe_Stream_RW_ErrorCodes_t enum.\r
                         */\r
                        uint8_t Pipe_Read_EStream_BE(void* Buffer, uint16_t Length __CALLBACK_PARAM) ATTR_NON_NULL_PTR_ARG(1);\r
                        void Pipe_ClearPipes(void);\r
 \r
                /* Inline Functions: */\r
-                       static inline uintN_t Pipe_BytesToEPSizeMask(uint16_t Bytes) ATTR_WARN_UNUSED_RESULT ATTR_CONST ATTR_ALWAYS_INLINE;\r
-                       static inline uintN_t Pipe_BytesToEPSizeMask(uint16_t Bytes)\r
+                       static inline uint8_t Pipe_BytesToEPSizeMask(uint16_t Bytes) ATTR_WARN_UNUSED_RESULT ATTR_CONST ATTR_ALWAYS_INLINE;\r
+                       static inline uint8_t Pipe_BytesToEPSizeMask(uint16_t Bytes)\r
                        {\r
-                               #if defined(__AVR32__)\r
-                               // TODO\r
-                               return 0;\r
-                               #elif defined(__AVR__)\r
                                if (Bytes <= 8)\r
                                  return (0 << EPSIZE0);\r
                                else if (Bytes <= 16)\r
                                  return (4 << EPSIZE0);\r
                                else\r
                                  return (5 << EPSIZE0);\r
-                               #endif\r
                        }\r
 \r
        #endif\r
index 406a909..3bc356d 100644 (file)
                #if !defined(__DOXYGEN__)\r
                        #define __INCLUDE_FROM_USB_DRIVER\r
                #endif\r
-               \r
+\r
        /* Includes: */\r
                #include "HighLevel/USBMode.h"\r
 \r
        /* Preprocessor Checks: */              \r
                #if (!defined(USB_SERIES_2_AVR) && !defined(USB_SERIES_4_AVR) && \\r
-                    !defined(USB_SERIES_6_AVR) && !defined(USB_SERIES_7_AVR) && \\r
-                        !defined(USB_SERIES_UC3B_AVR))\r
+                    !defined(USB_SERIES_6_AVR) && !defined(USB_SERIES_7_AVR))\r
                        #error The currently selected AVR model is not supported under the USB component of the LUFA library.\r
                #endif\r
                \r
index ad43258..14f1a25 100644 (file)
@@ -9,7 +9,7 @@
   *  \section Sec_ChangeLogXXXXXX Version XXXXXX\r
   *\r
   *  <b>New:</b>\r
-  *  - Added support for the UC3B0256 AVR32 microcontroller\r
+  *  - (None)\r
   *\r
   *  <b>Changed:</b>\r
   *  - AVRISP programmer project now has a more robust timeout system, allowing for a doubling of the software USART speed\r
index 5700c3a..9beeece 100644 (file)
  *  may be defined to a value between 0 and 2 to fix the state variable into one of the three general purpose IO registers inside the AVR\r
  *  reserved for application use. When defined, the corresponding GPIOR register should not be used within the user application except\r
  *  implicitly via the library APIs.\r
- *  \note This compile time option is ignored for the AVR32 UC3B architecture.\r
  *\r
  *  <b>FIXED_NUM_CONFIGURATIONS</b>=<i>x</i> - ( \ref Group_Device ) \n\r
  *  By default, the library determines the number of configurations a USB device supports by reading the device descriptor. This reduces\r
  *  may be defined to a value between 0 and 2 to fix the state variable into one of the three general purpose IO registers inside the AVR\r
  *  reserved for application use. When defined, the corresponding GPIOR register should not be used within the user application except\r
  *  implicitly via the library APIs.\r
- *  \note This compile time option is ignored for the AVR32 UC3B architecture.\r
  *\r
  *  <b>USB_HOST_TIMEOUT_MS</b>=<i>x</i> - ( \ref Group_Host ) \n\r
  *  When a control transfer is initiated in host mode to an attached device, a timeout is used to abort the transfer if the attached\r
index 98a1c77..0902b90 100644 (file)
  *   - AT90USB647 (USB Host and Device)\r
  *   - AT90USB1286 (USB Device Only)\r
  *   - AT90USB1287 (USB Host and Device)\r
- *   - AT32UC3B0256 (EXPERIMENTAL - see \ref Sec_AVR32Port)\r
  *\r
  *  Currently supported Atmel boards:\r
  *   - AT90USBKEY\r
  *   - ATAVRUSBRF01\r
  *   - EVK527\r
- *   - EVK1101  (EXPERIMENTAL - see \ref Sec_AVR32Port)\r
  *   - RZUSBSTICK\r
  *   - STK525\r
  *   - STK526\r
index 411cfe8..13583f5 100644 (file)
  *  This folder contains drivers for several of the AVR internal peripherals such as the USART, compatible with\r
  *  all USB AVR models.\r
  *\r
- *  \dir LUFA/Drivers/Peripheral/AVR8\r
- *  \brief 8-Bit AVR model peripheral driver files.\r
+ *  \dir LUFA/Drivers/Peripheral/AVRU4U6U7\r
+ *  \brief AT90USBXXX6, AT90USBXXX7 and ATMEGAXXU4 AVR model peripheral driver files.\r
  *  \r
- *  This folder contains drivers for several of the AVR internal peripherals such as the USART and ADC, on supported\r
- *  32-Bit AVR models. Its contents should <b>not</b> be included by the user application - the dispatch header file\r
- *  located in the parent directory should be used instead.\r
- *\r
- *  \dir LUFA/Drivers/Peripheral/AVR32\r
- *  \brief 32-Bit AVR model peripheral driver files.\r
- *\r
- *  This folder contains drivers for several of the AVR internal peripherals such as the USART and ADC, on supported\r
- *  8-Bit AVR models. Its contents should <b>not</b> be included by the user application - the dispatch header file\r
- *  located in the parent directory should be used instead.\r
+ *  This folder contains drivers for several of the AVR internal peripherals such as the USART, compatible only with\r
+ *  the AT90USBXXX6, AT90USBXXX7 and ATMEGAXXU4 USB AVR models, such as the AT90USB1287. Its contents should <b>not</b> be\r
+ *  included by the user application - the dispatch header file located in the parent directory should be used\r
+ *  instead.\r
  *\r
  *  \dir LUFA/Drivers/USB\r
  *  \brief USB controller peripheral driver files.\r
index 86114f4..38cbf0c 100644 (file)
   *      -# Finish SideShow demo\r
   *      -# Finish StandaloneProgrammer project\r
   *  - Ports\r
+  *      -# AVR32 UC3B series microcontrollers\r
   *      -# Atmel ARM7 series microcontrollers\r
   *      -# Other (commercial) C compilers\r
-  *\r
-  *  \section Sec_AVR32Port AVR32 Port Status\r
-  *  The following drivers have been ported:\r
-  *    - Joystick Board Driver\r
-  *    - Buttons Board Driver\r
-  *    - LEDs Board Driver\r
-  *    - Simple Scheduler\r
-  *    - Temperature Board Driver\r
-  *\r
-  *  The following drivers have been partially ported:\r
-  *    - SPI Peripheral Driver\r
-  *    - USB Driver\r
-  *\r
-  *  The following drivers have not yet been ported:\r
-  *    - Dataflash Board Driver\r
-  *    - Serial Peripheral Driver\r
-  *    - ADC Peripheral Driver\r
-  *    - TWI Peripheral Driver\r
   */\r
index ccc8c5c..c7ea7db 100644 (file)
@@ -13,9 +13,9 @@
  *\r
  *  <b>LUFA is donationware. For author and donation information, see \ref Page_Donating.</b>\r
  *\r
- *  LUFA is an open-source USB library for the USB-enabled AVR8 and AVR32 microcontrollers, released under the MIT license. It\r
- *  supports a large number of USB AVR models and boards (see \ref Page_DeviceSupport). It is designed to provide an easy to use,\r
- *  feature rich framework for the development of USB peripherals and hosts.\r
+ *  LUFA is an open-source USB library for the USB-enabled AVR microcontrollers, released under the MIT license. It supports\r
+ *  a large number of USB AVR models and boards (see \ref Page_DeviceSupport). It is designed to provide an easy to use, feature\r
+ *  rich framework for the development of USB peripherals and hosts.\r
  *\r
  *  LUFA focuses on the microcontroller side of USB development only; it includes no host USB driver development facilities. While\r
  *  custom USB devices can be made with LUFA, the included demos all use the inbuilt OS drivers for each USB class for simplicity.\r
index 206fd45..2623640 100644 (file)
@@ -13,9 +13,7 @@
  * \section Sec_MigrationXXXXXX Migrating from 100219 to XXXXXX\r
  *\r
  * \section Sec_Migration100219 Migrating from 091223 to 100219\r
- *  <b>Non-USB Library Components</b>\r
- *    - The "Byte" suffix on the SPI peripheral driver's send and receive routines has been dropped, to make the interface consistant\r
- *      between the AVR8 driver and the new AVR32 driver, which supports variable width transfers.\r
+ *    - (None)\r
  *\r
  *  <b>Non-USB Library Components</b>\r
  *    - Due to some ADC channels not being identical to their ADC MUX selection masks for single-ended conversions on some AVR models,\r
index 1ed6491..f71736f 100644 (file)
@@ -61,7 +61,7 @@
  *      {\r
  *             { .Task = MyTask1, .TaskStatus = TASK_RUN, .GroupID = 1  },\r
  *             { .Task = MyTask2, .TaskStatus = TASK_RUN, .GroupID = 1  },\r
- *      };\r
+ *      }\r
  *\r
  *      int main(void)\r
  *      {\r
 #define __SCHEDULER_H__\r
 \r
        /* Includes: */\r
-       #if defined(__AVR32__)\r
-               #include <avr32/io.h>\r
-               #include <stdbool.h>\r
-       #elif defined(__AVR__)\r
                #include <avr/io.h>\r
-               #include <util/atomic.h>\r
                #include <stdbool.h>\r
-       #endif\r
+               \r
+               #include <util/atomic.h>\r
 \r
-       #include "../Common/Common.h"\r
+               #include "../Common/Common.h"\r
 \r
        /* Enable C linkage for C++ Compilers: */\r
                #if defined(__cplusplus)\r
index 9922c19..85b31fb 100644 (file)
@@ -85,7 +85,7 @@ void ISPProtocol_EnterISPMode(void)
                for (uint8_t RByte = 0; RByte < sizeof(ResponseBytes); RByte++)\r
                {\r
                        ISPProtocol_DelayMS(Enter_ISP_Params.ByteDelay);\r
-                       ResponseBytes[RByte] = SPI_Transfer(Enter_ISP_Params.EnterProgBytes[RByte]);\r
+                       ResponseBytes[RByte] = SPI_TransferByte(Enter_ISP_Params.EnterProgBytes[RByte]);\r
                }\r
                \r
                /* Check if polling disabled, or if the polled value matches the expected value */\r
@@ -204,10 +204,10 @@ void ISPProtocol_ProgramMemory(uint8_t V2Command)
                        bool    IsOddByte   = (CurrentByte & 0x01);\r
                        uint8_t ByteToWrite = *(NextWriteByte++);\r
                \r
-                       SPI_Send(Write_Memory_Params.ProgrammingCommands[0]);\r
-                       SPI_Send(CurrentAddress >> 8);\r
-                       SPI_Send(CurrentAddress & 0xFF);\r
-                       SPI_Send(ByteToWrite);\r
+                       SPI_SendByte(Write_Memory_Params.ProgrammingCommands[0]);\r
+                       SPI_SendByte(CurrentAddress >> 8);\r
+                       SPI_SendByte(CurrentAddress & 0xFF);\r
+                       SPI_SendByte(ByteToWrite);\r
                        \r
                        /* AVR FLASH addressing requires us to modify the write command based on if we are writing a high\r
                         * or low byte at the current word address */\r
@@ -230,10 +230,10 @@ void ISPProtocol_ProgramMemory(uint8_t V2Command)
                /* If the current page must be committed, send the PROGRAM PAGE command to the target */\r
                if (Write_Memory_Params.ProgrammingMode & PROG_MODE_COMMIT_PAGE_MASK)\r
                {\r
-                       SPI_Send(Write_Memory_Params.ProgrammingCommands[1]);\r
-                       SPI_Send(StartAddress >> 8);\r
-                       SPI_Send(StartAddress & 0xFF);\r
-                       SPI_Send(0x00);\r
+                       SPI_SendByte(Write_Memory_Params.ProgrammingCommands[1]);\r
+                       SPI_SendByte(StartAddress >> 8);\r
+                       SPI_SendByte(StartAddress & 0xFF);\r
+                       SPI_SendByte(0x00);\r
                        \r
                        /* Check if polling is possible, if not switch to timed delay mode */\r
                        if (!(PollAddress))\r
@@ -254,10 +254,10 @@ void ISPProtocol_ProgramMemory(uint8_t V2Command)
                        bool    IsOddByte   = (CurrentByte & 0x01);\r
                        uint8_t ByteToWrite = *(NextWriteByte++);\r
                          \r
-                       SPI_Send(Write_Memory_Params.ProgrammingCommands[0]);\r
-                       SPI_Send(CurrentAddress >> 8);\r
-                       SPI_Send(CurrentAddress & 0xFF);\r
-                       SPI_Send(ByteToWrite);\r
+                       SPI_SendByte(Write_Memory_Params.ProgrammingCommands[0]);\r
+                       SPI_SendByte(CurrentAddress >> 8);\r
+                       SPI_SendByte(CurrentAddress & 0xFF);\r
+                       SPI_SendByte(ByteToWrite);\r
                        \r
                        /* AVR FLASH addressing requires us to modify the write command based on if we are writing a high\r
                         * or low byte at the current word address */\r
@@ -325,10 +325,10 @@ void ISPProtocol_ReadMemory(uint8_t V2Command)
        for (uint16_t CurrentByte = 0; CurrentByte < Read_Memory_Params.BytesToRead; CurrentByte++)\r
        {\r
                /* Read the next byte from the desired memory space in the device */\r
-               SPI_Send(Read_Memory_Params.ReadMemoryCommand);\r
-               SPI_Send(CurrentAddress >> 8);\r
-               SPI_Send(CurrentAddress & 0xFF);\r
-               Endpoint_Write_Byte(SPI_Receive());\r
+               SPI_SendByte(Read_Memory_Params.ReadMemoryCommand);\r
+               SPI_SendByte(CurrentAddress >> 8);\r
+               SPI_SendByte(CurrentAddress & 0xFF);\r
+               Endpoint_Write_Byte(SPI_ReceiveByte());\r
                \r
                /* Check if the endpoint bank is currently full, if so send the packet */\r
                if (!(Endpoint_IsReadWriteAllowed()))\r
@@ -381,7 +381,7 @@ void ISPProtocol_ChipErase(void)
        \r
        /* Send the chip erase commands as given by the host to the device */\r
        for (uint8_t SByte = 0; SByte < sizeof(Erase_Chip_Params.EraseCommandBytes); SByte++)\r
-         SPI_Send(Erase_Chip_Params.EraseCommandBytes[SByte]);\r
+         SPI_SendByte(Erase_Chip_Params.EraseCommandBytes[SByte]);\r
 \r
        /* Use appropriate command completion check as given by the host (delay or busy polling) */\r
        if (!(Erase_Chip_Params.PollMethod))\r
@@ -416,7 +416,7 @@ void ISPProtocol_ReadFuseLockSigOSCCAL(uint8_t V2Command)
 \r
        /* Send the Fuse or Lock byte read commands as given by the host to the device, store response */\r
        for (uint8_t RByte = 0; RByte < sizeof(ResponseBytes); RByte++)\r
-         ResponseBytes[RByte] = SPI_Transfer(Read_FuseLockSigOSCCAL_Params.ReadCommandBytes[RByte]);\r
+         ResponseBytes[RByte] = SPI_TransferByte(Read_FuseLockSigOSCCAL_Params.ReadCommandBytes[RByte]);\r
                \r
        Endpoint_Write_Byte(V2Command);\r
        Endpoint_Write_Byte(STATUS_CMD_OK);\r
@@ -444,7 +444,7 @@ void ISPProtocol_WriteFuseLock(uint8_t V2Command)
 \r
        /* Send the Fuse or Lock byte program commands as given by the host to the device */\r
        for (uint8_t SByte = 0; SByte < sizeof(Write_FuseLockSig_Params.WriteCommandBytes); SByte++)\r
-         SPI_Send(Write_FuseLockSig_Params.WriteCommandBytes[SByte]);\r
+         SPI_SendByte(Write_FuseLockSig_Params.WriteCommandBytes[SByte]);\r
                \r
        Endpoint_Write_Byte(V2Command);\r
        Endpoint_Write_Byte(STATUS_CMD_OK);\r
@@ -479,9 +479,9 @@ void ISPProtocol_SPIMulti(void)
        while (CurrTxPos < SPI_Multi_Params.RxStartAddr)\r
        {\r
                if (CurrTxPos < SPI_Multi_Params.TxBytes)\r
-                 SPI_Send(SPI_Multi_Params.TxData[CurrTxPos]);\r
+                 SPI_SendByte(SPI_Multi_Params.TxData[CurrTxPos]);\r
                else\r
-                 SPI_Send(0);\r
+                 SPI_SendByte(0);\r
                \r
                CurrTxPos++;\r
        }\r
@@ -490,9 +490,9 @@ void ISPProtocol_SPIMulti(void)
        while (CurrRxPos < SPI_Multi_Params.RxBytes)\r
        {\r
                if (CurrTxPos < SPI_Multi_Params.TxBytes)\r
-                 Endpoint_Write_Byte(SPI_Transfer(SPI_Multi_Params.TxData[CurrTxPos++]));\r
+                 Endpoint_Write_Byte(SPI_TransferByte(SPI_Multi_Params.TxData[CurrTxPos++]));\r
                else\r
-                 Endpoint_Write_Byte(SPI_Receive());\r
+                 Endpoint_Write_Byte(SPI_ReceiveByte());\r
                  \r
                /* Check to see if we have filled the endpoint bank and need to send the packet */\r
                if (!(Endpoint_IsReadWriteAllowed()))\r
index b657758..94f1c3d 100644 (file)
@@ -131,11 +131,11 @@ uint8_t ISPTarget_WaitForProgComplete(const uint8_t ProgrammingMode, const uint1
                                        TimeoutMSRemaining--;\r
                                }\r
 \r
-                               SPI_Send(ReadMemCommand);\r
-                               SPI_Send(PollAddress >> 8);\r
-                               SPI_Send(PollAddress & 0xFF);\r
+                               SPI_SendByte(ReadMemCommand);\r
+                               SPI_SendByte(PollAddress >> 8);\r
+                               SPI_SendByte(PollAddress & 0xFF);\r
                        }\r
-                       while ((SPI_Transfer(0x00) == PollValue) && TimeoutMSRemaining);\r
+                       while ((SPI_TransferByte(0x00) == PollValue) && TimeoutMSRemaining);\r
 \r
                        if (!(TimeoutMSRemaining))\r
                         ProgrammingStatus = STATUS_CMD_TOUT;\r
@@ -169,11 +169,11 @@ uint8_t ISPTarget_WaitWhileTargetBusy(void)
                        TimeoutMSRemaining--;\r
                }       \r
 \r
-               SPI_Send(0xF0);\r
-               SPI_Send(0x00);\r
-               SPI_Send(0x00);\r
+               SPI_SendByte(0xF0);\r
+               SPI_SendByte(0x00);\r
+               SPI_SendByte(0x00);\r
        }\r
-       while ((SPI_Receive() & 0x01) && TimeoutMSRemaining);\r
+       while ((SPI_ReceiveByte() & 0x01) && TimeoutMSRemaining);\r
 \r
        if (TimeoutMSRemaining)\r
        {\r
@@ -192,10 +192,10 @@ uint8_t ISPTarget_WaitWhileTargetBusy(void)
  */\r
 void ISPTarget_LoadExtendedAddress(void)\r
 {\r
-       SPI_Send(LOAD_EXTENDED_ADDRESS_CMD);\r
-       SPI_Send(0x00);\r
-       SPI_Send((CurrentAddress & 0x00FF0000) >> 16);\r
-       SPI_Send(0x00); \r
+       SPI_SendByte(LOAD_EXTENDED_ADDRESS_CMD);\r
+       SPI_SendByte(0x00);\r
+       SPI_SendByte((CurrentAddress & 0x00FF0000) >> 16);\r
+       SPI_SendByte(0x00);     \r
 }\r
 \r
 #endif\r
index b0b26c2..b2c139c 100644 (file)
@@ -66,7 +66,7 @@ MCU = at90usb1287
 # 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
-BOARD = USBKEY\r
+BOARD = XPLAIN\r
 \r
 \r
 # Processor frequency.\r