aboutsummaryrefslogtreecommitdiff
path: root/LUFA
diff options
context:
space:
mode:
authorDean <Dean@d5102386-fcda-11dd-9fdb-3debd5008f28>2012-02-19 17:03:08 +0000
committerDean <Dean@d5102386-fcda-11dd-9fdb-3debd5008f28>2012-02-19 17:03:08 +0000
commitc83edc6f4d3f447b5e4328a1f02fdc17b1bd5683 (patch)
treea7d8c567e10aded4d5d45f41cc63b234a7e78aad /LUFA
parent9b0c63fa0a32478a8f5bdd90a9ab4a23a19cb1f0 (diff)
Add tag for the 120219 release.LUFA-120219
git-svn-id: http://lufa-lib.googlecode.com/svn/tags/LUFA-120219@2061 d5102386-fcda-11dd-9fdb-3debd5008f28
Diffstat (limited to 'LUFA')
-rw-r--r--LUFA/CodeTemplates/DriverStubs/Buttons.h9
-rw-r--r--LUFA/CodeTemplates/DriverStubs/Dataflash.h14
-rw-r--r--LUFA/CodeTemplates/DriverStubs/Joystick.h9
-rw-r--r--LUFA/CodeTemplates/DriverStubs/LEDs.h9
-rw-r--r--LUFA/CodeTemplates/LUFAConfig.h8
-rw-r--r--LUFA/Common/ArchitectureSpecific.h4
-rw-r--r--LUFA/Common/Architectures.h4
-rw-r--r--LUFA/Common/Attributes.h4
-rw-r--r--LUFA/Common/BoardTypes.h126
-rw-r--r--LUFA/Common/Common.h10
-rw-r--r--LUFA/Common/CompilerSpecific.h9
-rw-r--r--LUFA/Common/Endianness.h4
-rw-r--r--LUFA/DoxygenPages/ChangeLog.txt28
-rw-r--r--LUFA/DoxygenPages/CompileTimeTokens.txt347
-rw-r--r--LUFA/DoxygenPages/DeviceSupport.txt15
-rw-r--r--LUFA/DoxygenPages/Groups.txt26
-rw-r--r--LUFA/DoxygenPages/LUFAPoweredProjects.txt6
-rw-r--r--LUFA/DoxygenPages/MigrationInformation.txt10
-rw-r--r--LUFA/Drivers/Board/AVR8/ADAFRUITU4/LEDs.h16
-rw-r--r--LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/Buttons.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/LEDs.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/BENITO/Buttons.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/BENITO/LEDs.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/BLACKCAT/LEDs.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/BUI/LEDs.h13
-rw-r--r--LUFA/Drivers/Board/AVR8/BUMBLEB/Buttons.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/BUMBLEB/Joystick.h12
-rw-r--r--LUFA/Drivers/Board/AVR8/BUMBLEB/LEDs.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/CULV3/Buttons.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/CULV3/LEDs.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/EVK527/Buttons.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/EVK527/Dataflash.h9
-rw-r--r--LUFA/Drivers/Board/AVR8/EVK527/Joystick.h21
-rw-r--r--LUFA/Drivers/Board/AVR8/EVK527/LEDs.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/JMDBU2/Buttons.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/JMDBU2/LEDs.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/MAXIMUS/LEDs.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/MICROPENDOUS/Buttons.h196
-rw-r--r--LUFA/Drivers/Board/AVR8/MICROPENDOUS/LEDs.h164
-rw-r--r--LUFA/Drivers/Board/AVR8/MICROSIN162/Buttons.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/MICROSIN162/LEDs.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/MINIMUS/Buttons.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/MINIMUS/LEDs.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/OLIMEX162/Buttons.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/OLIMEX162/LEDs.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/RZUSBSTICK/LEDs.h13
-rw-r--r--LUFA/Drivers/Board/AVR8/SPARKFUN8U2/LEDs.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/STK525/Buttons.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/STK525/Dataflash.h9
-rw-r--r--LUFA/Drivers/Board/AVR8/STK525/Joystick.h21
-rw-r--r--LUFA/Drivers/Board/AVR8/STK525/LEDs.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/STK526/Buttons.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/STK526/Dataflash.h9
-rw-r--r--LUFA/Drivers/Board/AVR8/STK526/Joystick.h13
-rw-r--r--LUFA/Drivers/Board/AVR8/STK526/LEDs.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/TEENSY/LEDs.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/TUL/Buttons.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/TUL/LEDs.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/UDIP/Buttons.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/UDIP/LEDs.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/UNO/LEDs.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/USB2AX/Buttons.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/USB2AX/LEDs.h15
-rw-r--r--LUFA/Drivers/Board/AVR8/USBFOO/Buttons.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/USBFOO/LEDs.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/USBKEY/Buttons.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/USBKEY/Dataflash.h9
-rw-r--r--LUFA/Drivers/Board/AVR8/USBKEY/Joystick.h21
-rw-r--r--LUFA/Drivers/Board/AVR8/USBKEY/LEDs.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/USBTINYMKII/Buttons.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/USBTINYMKII/LEDs.h10
-rw-r--r--LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h9
-rw-r--r--LUFA/Drivers/Board/AVR8/XPLAIN/LEDs.h10
-rw-r--r--LUFA/Drivers/Board/Buttons.h17
-rw-r--r--LUFA/Drivers/Board/Dataflash.h17
-rw-r--r--LUFA/Drivers/Board/Joystick.h7
-rw-r--r--LUFA/Drivers/Board/LEDs.h12
-rw-r--r--LUFA/Drivers/Board/Temperature.c4
-rw-r--r--LUFA/Drivers/Board/Temperature.h4
-rw-r--r--LUFA/Drivers/Board/UC3/EVK1100/Buttons.h20
-rw-r--r--LUFA/Drivers/Board/UC3/EVK1100/Joystick.h20
-rw-r--r--LUFA/Drivers/Board/UC3/EVK1100/LEDs.h21
-rw-r--r--LUFA/Drivers/Board/UC3/EVK1101/Buttons.h20
-rw-r--r--LUFA/Drivers/Board/UC3/EVK1101/Joystick.h23
-rw-r--r--LUFA/Drivers/Board/UC3/EVK1101/LEDs.h21
-rw-r--r--LUFA/Drivers/Board/UC3/EVK1104/Buttons.h20
-rw-r--r--LUFA/Drivers/Board/UC3/EVK1104/LEDs.h25
-rw-r--r--LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Buttons.h36
-rw-r--r--LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Dataflash.h38
-rw-r--r--LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/LEDs.h34
-rw-r--r--LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Buttons.h111
-rw-r--r--LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Dataflash.h216
-rw-r--r--LUFA/Drivers/Board/XMEGA/B1_XPLAINED/LEDs.h173
-rw-r--r--LUFA/Drivers/Misc/AT45DB321C.h4
-rw-r--r--LUFA/Drivers/Misc/AT45DB642D.h4
-rw-r--r--LUFA/Drivers/Misc/RingBuffer.h4
-rw-r--r--LUFA/Drivers/Misc/TerminalCodes.h4
-rw-r--r--LUFA/Drivers/Peripheral/ADC.h4
-rw-r--r--LUFA/Drivers/Peripheral/AVR8/ADC_AVR8.h4
-rw-r--r--LUFA/Drivers/Peripheral/AVR8/SPI_AVR8.h34
-rw-r--r--LUFA/Drivers/Peripheral/AVR8/SerialSPI_AVR8.h205
-rw-r--r--LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.c30
-rw-r--r--LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.h78
-rw-r--r--LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.c4
-rw-r--r--LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.h6
-rw-r--r--LUFA/Drivers/Peripheral/SPI.h4
-rw-r--r--LUFA/Drivers/Peripheral/Serial.h6
-rw-r--r--LUFA/Drivers/Peripheral/SerialSPI.h76
-rw-r--r--LUFA/Drivers/Peripheral/TWI.h4
-rw-r--r--LUFA/Drivers/Peripheral/XMEGA/SPI_XMEGA.h74
-rw-r--r--LUFA/Drivers/Peripheral/XMEGA/SerialSPI_XMEGA.h208
-rw-r--r--LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.c117
-rw-r--r--LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.h252
-rw-r--r--LUFA/Drivers/USB/Class/AndroidAccessoryClass.h4
-rw-r--r--LUFA/Drivers/USB/Class/AudioClass.h4
-rw-r--r--LUFA/Drivers/USB/Class/CDCClass.h4
-rw-r--r--LUFA/Drivers/USB/Class/Common/AndroidAccessoryClassCommon.h4
-rw-r--r--LUFA/Drivers/USB/Class/Common/AudioClassCommon.h4
-rw-r--r--LUFA/Drivers/USB/Class/Common/CDCClassCommon.h4
-rw-r--r--LUFA/Drivers/USB/Class/Common/HIDClassCommon.h10
-rw-r--r--LUFA/Drivers/USB/Class/Common/HIDParser.c4
-rw-r--r--LUFA/Drivers/USB/Class/Common/HIDParser.h6
-rw-r--r--LUFA/Drivers/USB/Class/Common/HIDReportData.h4
-rw-r--r--LUFA/Drivers/USB/Class/Common/MIDIClassCommon.h4
-rw-r--r--LUFA/Drivers/USB/Class/Common/MassStorageClassCommon.h4
-rw-r--r--LUFA/Drivers/USB/Class/Common/PrinterClassCommon.h4
-rw-r--r--LUFA/Drivers/USB/Class/Common/RNDISClassCommon.h4
-rw-r--r--LUFA/Drivers/USB/Class/Common/StillImageClassCommon.h4
-rw-r--r--LUFA/Drivers/USB/Class/Device/AudioClassDevice.c59
-rw-r--r--LUFA/Drivers/USB/Class/Device/AudioClassDevice.h39
-rw-r--r--LUFA/Drivers/USB/Class/Device/CDCClassDevice.c4
-rw-r--r--LUFA/Drivers/USB/Class/Device/CDCClassDevice.h14
-rw-r--r--LUFA/Drivers/USB/Class/Device/HIDClassDevice.c9
-rw-r--r--LUFA/Drivers/USB/Class/Device/HIDClassDevice.h7
-rw-r--r--LUFA/Drivers/USB/Class/Device/MIDIClassDevice.c4
-rw-r--r--LUFA/Drivers/USB/Class/Device/MIDIClassDevice.h8
-rw-r--r--LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.c4
-rw-r--r--LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.h6
-rw-r--r--LUFA/Drivers/USB/Class/Device/RNDISClassDevice.c4
-rw-r--r--LUFA/Drivers/USB/Class/Device/RNDISClassDevice.h6
-rw-r--r--LUFA/Drivers/USB/Class/HIDClass.h4
-rw-r--r--LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.c6
-rw-r--r--LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.h6
-rw-r--r--LUFA/Drivers/USB/Class/Host/AudioClassHost.c4
-rw-r--r--LUFA/Drivers/USB/Class/Host/AudioClassHost.h6
-rw-r--r--LUFA/Drivers/USB/Class/Host/CDCClassHost.c4
-rw-r--r--LUFA/Drivers/USB/Class/Host/CDCClassHost.h8
-rw-r--r--LUFA/Drivers/USB/Class/Host/HIDClassHost.c4
-rw-r--r--LUFA/Drivers/USB/Class/Host/HIDClassHost.h6
-rw-r--r--LUFA/Drivers/USB/Class/Host/MIDIClassHost.c4
-rw-r--r--LUFA/Drivers/USB/Class/Host/MIDIClassHost.h6
-rw-r--r--LUFA/Drivers/USB/Class/Host/MassStorageClassHost.c4
-rw-r--r--LUFA/Drivers/USB/Class/Host/MassStorageClassHost.h6
-rw-r--r--LUFA/Drivers/USB/Class/Host/PrinterClassHost.c4
-rw-r--r--LUFA/Drivers/USB/Class/Host/PrinterClassHost.h6
-rw-r--r--LUFA/Drivers/USB/Class/Host/RNDISClassHost.c4
-rw-r--r--LUFA/Drivers/USB/Class/Host/RNDISClassHost.h6
-rw-r--r--LUFA/Drivers/USB/Class/Host/StillImageClassHost.c4
-rw-r--r--LUFA/Drivers/USB/Class/Host/StillImageClassHost.h6
-rw-r--r--LUFA/Drivers/USB/Class/MIDIClass.h4
-rw-r--r--LUFA/Drivers/USB/Class/MassStorageClass.h4
-rw-r--r--LUFA/Drivers/USB/Class/PrinterClass.h4
-rw-r--r--LUFA/Drivers/USB/Class/RNDISClass.h4
-rw-r--r--LUFA/Drivers/USB/Class/StillImageClass.h4
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/Device_AVR8.c4
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/Device_AVR8.h8
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.c4
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.h4
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.c4
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.h4
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/Host_AVR8.c13
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/Host_AVR8.h16
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/OTG_AVR8.h4
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c4
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.h4
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.c4
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.h4
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_R.c4
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_W.c4
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_RW.c4
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/Template/Template_Pipe_RW.c4
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c4
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h4
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c4
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.h4
-rw-r--r--LUFA/Drivers/USB/Core/ConfigDescriptor.c4
-rw-r--r--LUFA/Drivers/USB/Core/ConfigDescriptor.h4
-rw-r--r--LUFA/Drivers/USB/Core/Device.h4
-rw-r--r--LUFA/Drivers/USB/Core/DeviceStandardReq.c4
-rw-r--r--LUFA/Drivers/USB/Core/DeviceStandardReq.h4
-rw-r--r--LUFA/Drivers/USB/Core/Endpoint.h4
-rw-r--r--LUFA/Drivers/USB/Core/EndpointStream.h4
-rw-r--r--LUFA/Drivers/USB/Core/Events.c4
-rw-r--r--LUFA/Drivers/USB/Core/Events.h4
-rw-r--r--LUFA/Drivers/USB/Core/Host.h4
-rw-r--r--LUFA/Drivers/USB/Core/HostStandardReq.c4
-rw-r--r--LUFA/Drivers/USB/Core/HostStandardReq.h6
-rw-r--r--LUFA/Drivers/USB/Core/OTG.h4
-rw-r--r--LUFA/Drivers/USB/Core/Pipe.h4
-rw-r--r--LUFA/Drivers/USB/Core/PipeStream.h4
-rw-r--r--LUFA/Drivers/USB/Core/StdDescriptors.h37
-rw-r--r--LUFA/Drivers/USB/Core/StdRequestType.h10
-rw-r--r--LUFA/Drivers/USB/Core/UC3/Device_UC3.c4
-rw-r--r--LUFA/Drivers/USB/Core/UC3/Device_UC3.h4
-rw-r--r--LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.c4
-rw-r--r--LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.h4
-rw-r--r--LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.c4
-rw-r--r--LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h4
-rw-r--r--LUFA/Drivers/USB/Core/UC3/Host_UC3.c13
-rw-r--r--LUFA/Drivers/USB/Core/UC3/Host_UC3.h4
-rw-r--r--LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.c4
-rw-r--r--LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.h4
-rw-r--r--LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c8
-rw-r--r--LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h6
-rw-r--r--LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_R.c4
-rw-r--r--LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_W.c4
-rw-r--r--LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_RW.c4
-rw-r--r--LUFA/Drivers/USB/Core/UC3/Template/Template_Pipe_RW.c4
-rw-r--r--LUFA/Drivers/USB/Core/UC3/USBController_UC3.c8
-rw-r--r--LUFA/Drivers/USB/Core/UC3/USBController_UC3.h4
-rw-r--r--LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.c4
-rw-r--r--LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.h8
-rw-r--r--LUFA/Drivers/USB/Core/USBController.h4
-rw-r--r--LUFA/Drivers/USB/Core/USBInterrupt.h4
-rw-r--r--LUFA/Drivers/USB/Core/USBMode.h7
-rw-r--r--LUFA/Drivers/USB/Core/USBTask.c6
-rw-r--r--LUFA/Drivers/USB/Core/USBTask.h4
-rw-r--r--LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.c4
-rw-r--r--LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.h4
-rw-r--r--LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.c4
-rw-r--r--LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.h4
-rw-r--r--LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.c17
-rw-r--r--LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h10
-rw-r--r--LUFA/Drivers/USB/Core/XMEGA/Host_XMEGA.c4
-rw-r--r--LUFA/Drivers/USB/Core/XMEGA/PipeStream_XMEGA.c4
-rw-r--r--LUFA/Drivers/USB/Core/XMEGA/Pipe_XMEGA.c4
-rw-r--r--LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_R.c6
-rw-r--r--LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_W.c6
-rw-r--r--LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_RW.c4
-rw-r--r--LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.c4
-rw-r--r--LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.h4
-rw-r--r--LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.c7
-rw-r--r--LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.h8
-rw-r--r--LUFA/Drivers/USB/USB.h93
-rw-r--r--LUFA/Platform/UC3/ClockManagement.h8
-rw-r--r--LUFA/Platform/UC3/InterruptManagement.c5
-rw-r--r--LUFA/Platform/UC3/InterruptManagement.h14
-rw-r--r--LUFA/Platform/XMEGA/ClockManagement.h15
-rw-r--r--LUFA/Scheduler/Scheduler.c4
-rw-r--r--LUFA/Scheduler/Scheduler.h4
-rw-r--r--LUFA/Version.h8
251 files changed, 3433 insertions, 1051 deletions
diff --git a/LUFA/CodeTemplates/DriverStubs/Buttons.h b/LUFA/CodeTemplates/DriverStubs/Buttons.h
index f1a18460..e050d75a 100644
--- a/LUFA/CodeTemplates/DriverStubs/Buttons.h
+++ b/LUFA/CodeTemplates/DriverStubs/Buttons.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -67,6 +67,11 @@
// TODO: Initialize the appropriate port pins as an inputs here, with pull-ups
}
+ static inline void Buttons_Disable(void)
+ {
+ // TODO: Clear the appropriate port pins as high impedance inputs here
+ }
+
static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint8_t Buttons_GetStatus(void)
{
diff --git a/LUFA/CodeTemplates/DriverStubs/Dataflash.h b/LUFA/CodeTemplates/DriverStubs/Dataflash.h
index 4ab1b8dc..9fcc25f9 100644
--- a/LUFA/CodeTemplates/DriverStubs/Dataflash.h
+++ b/LUFA/CodeTemplates/DriverStubs/Dataflash.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -90,24 +90,24 @@
/** Sends a byte to the currently selected dataflash IC, and returns a byte from the dataflash.
*
- * \param[in] Byte of data to send to the dataflash
+ * \param[in] Byte Byte of data to send to the dataflash
*
* \return Last response byte from the dataflash
*/
static inline uint8_t Dataflash_TransferByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
static inline uint8_t Dataflash_TransferByte(const uint8_t Byte)
{
- return SPI_TransferByte(Byte);
+ // TODO
}
/** Sends a byte to the currently selected dataflash IC, and ignores the next byte from the dataflash.
*
- * \param[in] Byte of data to send to the dataflash
+ * \param[in] Byte Byte of data to send to the dataflash
*/
static inline void Dataflash_SendByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
static inline void Dataflash_SendByte(const uint8_t Byte)
{
- SPI_SendByte(Byte);
+ // TODO
}
/** Sends a dummy byte to the currently selected dataflash IC, and returns the next byte from the dataflash.
@@ -117,7 +117,7 @@
static inline uint8_t Dataflash_ReceiveByte(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;
static inline uint8_t Dataflash_ReceiveByte(void)
{
- return SPI_ReceiveByte();
+ // TODO
}
/** Determines the currently selected dataflash chip.
diff --git a/LUFA/CodeTemplates/DriverStubs/Joystick.h b/LUFA/CodeTemplates/DriverStubs/Joystick.h
index bfde26bb..4843ce6f 100644
--- a/LUFA/CodeTemplates/DriverStubs/Joystick.h
+++ b/LUFA/CodeTemplates/DriverStubs/Joystick.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -79,6 +79,11 @@
// TODO: Initialize joystick port pins as inputs with pull-ups
}
+ static inline void Joystick_Disable(void)
+ {
+ // TODO: Clear the joystick pins as high impedance inputs here
+ }
+
static inline uint8_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint8_t Joystick_GetStatus(void)
{
diff --git a/LUFA/CodeTemplates/DriverStubs/LEDs.h b/LUFA/CodeTemplates/DriverStubs/LEDs.h
index e698c9db..1314e942 100644
--- a/LUFA/CodeTemplates/DriverStubs/LEDs.h
+++ b/LUFA/CodeTemplates/DriverStubs/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -82,6 +82,11 @@
// TODO: Add code to initialize LED port pins as outputs here
}
+ static inline void LEDs_Disable(void)
+ {
+ // TODO: Clear the LED port pins as high impedance inputs here
+ }
+
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
{
// TODO: Add code to turn on LEDs given in the LEDMask mask here, leave others as-is
diff --git a/LUFA/CodeTemplates/LUFAConfig.h b/LUFA/CodeTemplates/LUFAConfig.h
index 3f8841d3..5672d0e8 100644
--- a/LUFA/CodeTemplates/LUFAConfig.h
+++ b/LUFA/CodeTemplates/LUFAConfig.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -83,6 +83,8 @@
// #define HOST_STATE_AS_GPIOR {Insert Value Here}
// #define USB_HOST_TIMEOUT_MS {Insert Value Here}
// #define HOST_DEVICE_SETTLE_DELAY_MS {Insert Value Here}
+// #define NO_AUTO_VBUS_MANAGEMENT
+// #define INVERTED_VBUS_ENABLE_LINE
#elif (ARCH == ARCH_XMEGA)
@@ -150,6 +152,8 @@
/* USB Host Mode Driver Related Tokens: */
// #define USB_HOST_TIMEOUT_MS {Insert Value Here}
// #define HOST_DEVICE_SETTLE_DELAY_MS {Insert Value Here}
+// #define NO_AUTO_VBUS_MANAGEMENT
+// #define INVERTED_VBUS_ENABLE_LINE
#endif
#endif
diff --git a/LUFA/Common/ArchitectureSpecific.h b/LUFA/Common/ArchitectureSpecific.h
index 48063e0d..3ba7a5c0 100644
--- a/LUFA/Common/ArchitectureSpecific.h
+++ b/LUFA/Common/ArchitectureSpecific.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Common/Architectures.h b/LUFA/Common/Architectures.h
index c8b51554..8104d524 100644
--- a/LUFA/Common/Architectures.h
+++ b/LUFA/Common/Architectures.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Common/Attributes.h b/LUFA/Common/Attributes.h
index ccb2d43d..ee83db15 100644
--- a/LUFA/Common/Attributes.h
+++ b/LUFA/Common/Attributes.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Common/BoardTypes.h b/LUFA/Common/BoardTypes.h
index ea0d7073..56760603 100644
--- a/LUFA/Common/BoardTypes.h
+++ b/LUFA/Common/BoardTypes.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -58,121 +58,151 @@
/* Public Interface - May be used in end-application: */
/* Macros: */
+ /** Selects the user-defined board drivers, which should be placed in the user project's folder
+ * under a directory named \c /Board/. Each board driver should be named identically to the LUFA
+ * master board driver (i.e., driver in the \c LUFA/Drivers/Board directory) so that the library
+ * can correctly identify it.
+ */
+ #define BOARD_USER 0
+
+ /** Disables board drivers when operation will not be adversely affected (e.g. LEDs) - use of board drivers
+ * such as the Joystick driver, where the removal would adversely affect the code's operation is still disallowed. */
+ #define BOARD_NONE 1
+
/** Selects the USBKEY specific board drivers, including Temperature, Button, Dataflash, Joystick and LED drivers. */
- #define BOARD_USBKEY 0
+ #define BOARD_USBKEY 2
/** Selects the STK525 specific board drivers, including Temperature, Button, Dataflash, Joystick and LED drivers. */
- #define BOARD_STK525 1
+ #define BOARD_STK525 3
/** Selects the STK526 specific board drivers, including Temperature, Button, Dataflash, Joystick and LED drivers. */
- #define BOARD_STK526 2
+ #define BOARD_STK526 4
/** Selects the RZUSBSTICK specific board drivers, including the driver for the boards LEDs. */
- #define BOARD_RZUSBSTICK 3
+ #define BOARD_RZUSBSTICK 5
/** Selects the ATAVRUSBRF01 specific board drivers, including the driver for the board LEDs. */
- #define BOARD_ATAVRUSBRF01 4
-
- /** Selects the user-defined board drivers, which should be placed in the user project's folder
- * under a directory named \c /Board/. Each board driver should be named identically to the LUFA
- * master board driver (i.e., driver in the \c LUFA/Drivers/Board directory) so that the library
- * can correctly identify it.
- */
- #define BOARD_USER 5
+ #define BOARD_ATAVRUSBRF01 6
/** Selects the BUMBLEB specific board drivers, using the officially recommended peripheral layout. */
- #define BOARD_BUMBLEB 6
+ #define BOARD_BUMBLEB 7
/** Selects the XPLAIN (Revision 2 or newer) specific board drivers, including LED and Dataflash drivers. */
- #define BOARD_XPLAIN 7
+ #define BOARD_XPLAIN 8
/** Selects the XPLAIN (Revision 1) specific board drivers, including LED and Dataflash drivers. */
- #define BOARD_XPLAIN_REV1 8
+ #define BOARD_XPLAIN_REV1 9
/** Selects the EVK527 specific board drivers, including Temperature, Button, Dataflash, Joystick and LED drivers. */
- #define BOARD_EVK527 9
-
- /** Disables board drivers when operation will not be adversely affected (e.g. LEDs) - use of board drivers
- * such as the Joystick driver, where the removal would adversely affect the code's operation is still disallowed. */
- #define BOARD_NONE 10
+ #define BOARD_EVK527 10
/** Selects the Teensy version 1.x specific board drivers, including the driver for the board LEDs. */
- #define BOARD_TEENSY 11
+ #define BOARD_TEENSY 11
/** Selects the USBTINY MKII specific board drivers, including the Button and LEDs drivers. */
- #define BOARD_USBTINYMKII 12
+ #define BOARD_USBTINYMKII 12
/** Selects the Benito specific board drivers, including the Button and LEDs drivers. */
- #define BOARD_BENITO 13
+ #define BOARD_BENITO 13
/** Selects the JM-DB-U2 specific board drivers, including the Button and LEDs drivers. */
- #define BOARD_JMDBU2 14
+ #define BOARD_JMDBU2 14
/** Selects the Olimex AVR-USB-162 specific board drivers, including the Button and LEDs drivers. */
- #define BOARD_OLIMEX162 15
+ #define BOARD_OLIMEX162 15
/** Selects the UDIP specific board drivers, including the Button and LEDs drivers. */
- #define BOARD_UDIP 16
+ #define BOARD_UDIP 16
/** Selects the BUI specific board drivers, including the driver for the board LEDs. */
- #define BOARD_BUI 17
+ #define BOARD_BUI 17
/** Selects the Arduino Uno specific board drivers, including the driver for the board LEDs. */
- #define BOARD_UNO 18
+ #define BOARD_UNO 18
/** Selects the Busware CUL V3 specific board drivers, including the Button and LEDs drivers. */
- #define BOARD_CULV3 19
+ #define BOARD_CULV3 19
/** Selects the Blackcat USB JTAG specific board drivers, including the driver for the board LEDs. */
- #define BOARD_BLACKCAT 20
+ #define BOARD_BLACKCAT 20
/** Selects the Maximus specific board drivers, including the driver for the board LEDs. */
- #define BOARD_MAXIMUS 21
+ #define BOARD_MAXIMUS 21
/** Selects the Minimus specific board drivers, including the Button and LEDs drivers. */
- #define BOARD_MINIMUS 22
+ #define BOARD_MINIMUS 22
/** Selects the Adafruit U4 specific board drivers, including the Button driver. */
- #define BOARD_ADAFRUITU4 23
+ #define BOARD_ADAFRUITU4 23
/** Selects the Microsin AVR-USB162 specific board drivers, including the Button and LEDs drivers. */
- #define BOARD_MICROSIN162 24
+ #define BOARD_MICROSIN162 24
/** Selects the Kernel Concepts USBFOO specific board drivers, including the Button and LEDs drivers. */
- #define BOARD_USBFOO 25
+ #define BOARD_USBFOO 25
/** Selects the Sparkfun ATMEGA8U2 specific board drivers, including the driver for the board LEDs. */
- #define BOARD_SPARKFUN8U2 26
+ #define BOARD_SPARKFUN8U2 26
/** Selects the Atmel EVK1101 specific board drivers, including the Button, Joystick and LED drivers. */
- #define BOARD_EVK1101 27
+ #define BOARD_EVK1101 27
/** Selects the Busware TUL specific board drivers, including the Button and LED drivers. */
- #define BOARD_TUL 28
+ #define BOARD_TUL 28
/** Selects the Atmel EVK1100 specific board drivers, including the Button, Joystick and LED drivers. */
- #define BOARD_EVK1100 29
+ #define BOARD_EVK1100 29
/** Selects the Atmel EVK1104 specific board drivers, including the Button and LED drivers. */
- #define BOARD_EVK1104 30
+ #define BOARD_EVK1104 30
/** Selects the Atmel XMEGA A3BU Xplained specific board drivers, including Dataflash, Button and LED drivers. */
- #define BOARD_A3BU_XPLAINED 31
+ #define BOARD_A3BU_XPLAINED 31
/** Selects the Teensy version 2.x specific board drivers, including the driver for the board LEDs. */
- #define BOARD_TEENSY2 32
+ #define BOARD_TEENSY2 32
/** Selects the USB2AX version 1 and 2 specific board drivers, including the Button and LEDs drivers. */
- #define BOARD_USB2AX 33
+ #define BOARD_USB2AX 33
/** Selects the USB2AX version 3 specific board drivers, including the Button and LEDs drivers. */
- #define BOARD_USB2AX_V3 34
+ #define BOARD_USB2AX_V3 34
+
+ /** Selects the Micropendous 32U2 specific board drivers, including the Button and LED drivers. */
+ #define BOARD_MICROPENDOUS_32U2 35
+
+ /** Selects the Micropendous A specific board drivers, including the Button. */
+ #define BOARD_MICROPENDOUS_A 36
+
+ /** Selects the Micropendous 1 specific board drivers, including the Button. */
+ #define BOARD_MICROPENDOUS_1 37
+
+ /** Selects the Micropendous 2 specific board drivers, including the Button. */
+ #define BOARD_MICROPENDOUS_2 38
+
+ /** Selects the Micropendous 3 specific board drivers, including the Button. */
+ #define BOARD_MICROPENDOUS_3 39
+
+ /** Selects the Micropendous 4 specific board drivers, including the Button. */
+ #define BOARD_MICROPENDOUS_4 40
+
+ /** Selects the Micropendous DIP specific board drivers, including the Button. */
+ #define BOARD_MICROPENDOUS_DIP 41
+
+ /** Selects the Micropendous (Arduino-like) revision 1 specific board drivers, including the Button and LED drivers. */
+ #define BOARD_MICROPENDOUS_REV1 42
+
+ /** Selects the Micropendous (Arduino-like) revision 2 specific board drivers, including the Button and LED drivers. */
+ #define BOARD_MICROPENDOUS_REV2 43
+
+ /** Selects the XMEGA B1 Xplained specific board drivers, including the Button and LED drivers. */
+ #define BOARD_B1_XPLAINED 44
#if !defined(__DOXYGEN__)
- #define BOARD_ BOARD_NONE
+ #define BOARD_ BOARD_NONE
#if !defined(BOARD)
- #define BOARD BOARD_NONE
+ #define BOARD BOARD_NONE
#endif
#endif
diff --git a/LUFA/Common/Common.h b/LUFA/Common/Common.h
index 6f9936af..4c9aa493 100644
--- a/LUFA/Common/Common.h
+++ b/LUFA/Common/Common.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -89,6 +89,7 @@
#include <avr/pgmspace.h>
#include <avr/eeprom.h>
#include <avr/boot.h>
+ #include <math.h>
#include <util/delay.h>
typedef uint8_t uint_reg_t;
@@ -119,6 +120,7 @@
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
#include <avr/eeprom.h>
+ #include <math.h>
#include <util/delay.h>
typedef uint8_t uint_reg_t;
@@ -212,7 +214,7 @@
*
* \param Name Unique name of the interrupt service routine.
*/
- #define ISR(Name, ...) void Name (void) __attribute__((__interrupt__)) __VA_ARGS__; void Name (void)
+ #define ISR(Name, ...) void Name (void) __attribute__((__interrupt__)) __VA_ARGS__; void Name (void)
#endif
/* Inline Functions: */
@@ -256,7 +258,7 @@
while (Milliseconds--)
{
__builtin_mtsr(AVR32_COUNT, 0);
- while (__builtin_mfsr(AVR32_COUNT) < (F_CPU / 1000));
+ while ((uint32_t)__builtin_mfsr(AVR32_COUNT) < (F_CPU / 1000));
}
#elif (ARCH == ARCH_XMEGA)
if (GCC_IS_COMPILE_CONST(Milliseconds))
diff --git a/LUFA/Common/CompilerSpecific.h b/LUFA/Common/CompilerSpecific.h
index 9186135b..ad2d075c 100644
--- a/LUFA/Common/CompilerSpecific.h
+++ b/LUFA/Common/CompilerSpecific.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -78,10 +78,9 @@
*/
#define GCC_MEMORY_BARRIER() __asm__ __volatile__("" ::: "memory");
- /** Evaluates to boolean true if the specified value can be determined at compile time to be a constant value
- * when compiling under GCC.
+ /** Determines if the specified value can be determined at compile-time to be a constant value when compiling under GCC.
*
- * \param[in] x Value to check compile time constantness of.
+ * \param[in] x Value to check compile-time constantness of.
*
* \return Boolean true if the given value is known to be a compile time constant, false otherwise.
*/
diff --git a/LUFA/Common/Endianness.h b/LUFA/Common/Endianness.h
index f0b5b19a..2a618acc 100644
--- a/LUFA/Common/Endianness.h
+++ b/LUFA/Common/Endianness.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/DoxygenPages/ChangeLog.txt b/LUFA/DoxygenPages/ChangeLog.txt
index 446e5a11..88208694 100644
--- a/LUFA/DoxygenPages/ChangeLog.txt
+++ b/LUFA/DoxygenPages/ChangeLog.txt
@@ -6,7 +6,7 @@
/** \page Page_ChangeLog Project Changelog
*
- * \section Sec_ChangeLogXXXXXX Version XXXXXX
+ * \section Sec_ChangeLog120219 Version 120219
* <b>New:</b>
* - Core:
* - Added support for the XMEGA A3BU Xplained board
@@ -15,6 +15,15 @@
* - Added support for the USB2AX boards, hardware revision 1-3
* - Added new Android Accessory Host class driver
* - Added new USB_Host_GetDescriptor(), USB_Host_GetDeviceConfiguration() and USB_Host_GetInterfaceAltSetting() functions
+ * - Added new CALLBACK_Audio_Device_GetSetInterfaceProperty() callback to the Audio Device Class driver
+ * - Added new LEDs_Disable(), Buttons_Disable() and Joystick_Disable() functions to the board hardware drivers
+ * - Added support for the Micropendous family of boards (Arduino-like revisions 1 and 2, DIP, 32U2, A, 1, 2, 3 and 4)
+ * - Added INVERTED_VBUS_ENABLE_LINE and NO_AUTO_VBUS_MANAGEMENT compile time options (thanks to Opendous Inc.)
+ * - Added support for the Atmel XMEGA B1 Xplained board
+ * - Added Serial USART peripheral driver for the XMEGA architecture
+ * - Added Master Mode SPI USART peripheral driver for the XMEGA and AVR8 architectures
+ * - Added build test to verify correct compilation of as many modules as possible under as many architectures as possible under the C and C++ languages
+ * - Added build test to verify correct compilation of the USB driver when forced into single USB mode under as many architectures as possible
* - Library Applications:
* - Added User Application APIs to the CDC and DFU class bootloaders
* - Added INVERTED_ISP_MISO compile time option to the AVRISP-MKII clone project (thanks to Chuck Rohs)
@@ -27,9 +36,18 @@
* - Added Class, ClassDevice, ClassHost and ClassCommon to the internal class driver source filenames to prevent ambiguities
* - Altered the Mass Storage Host class driver so that SCSI data STALLs from the attached device can be recovered from automatically without
* having to reset the Mass Storage interface
+ * - USB_CONFIG_ATTR_BUSPOWERED constant renamed to USB_CONFIG_ATTR_RESERVED, as this was misnamed (thanks to NXP Semiconductors)
+ * - Reordered board name definition indexes so that a mispelled BOARD compile option will default to BOARD_USER rather than BOARD_USBKEY
+ * - Altered the HID class driver to only try to construct at maximum one packet per USB frame, to reduce CPU usage
+ * - All USB Class Driver configuration struct values are now non-const, to allow for run-time modifications if required before configuring an instance
* - Library Applications:
* - Altered the Mass Storage Host LowLevel demo so that SCSI data STALLs from the attached device can be recovered from automatically without
* having to reset the Mass Storage interface
+ * - Updated the AVRISP-MKII Clone programmer project to be compatible with the latest version of AVR Studio (version 5.1)
+ * - Changed the AVRISP-MKII Clone programmer project to report a fixed 3.3V VTARGET voltage on USB AVRs lacking an ADC instead of 5V to prevent
+ * warnings in AVR Studio 5.1 when programming XMEGA devices
+ * - Allow serial strings to be generated on the older AVR8 devices which do not explicitly state they contain unique values in the datasheet,
+ * as this appears to be implemented in hardware
*
* <b>Fixed:</b>
* - Core:
@@ -40,10 +58,18 @@
* - Fixed broken AVR32 endpoint/pipe communications when ORDERED_EP_CONFIG compile time option is not enabled (thanks to Matthias Jahr)
* - Fixed broken compilation for the AVR32 devices if the NO_SOF_EVENTS compile time option was not enabled (thanks to Matthias Jahr)
* - Fixed compiler warning on GCC with \c -wundef compile flag is used (thanks to Georg Glock)
+ * - Fixed incorrect implementation of LEDs_ToggleLEDs() for the Adafruit-U4 board (thanks to Caroline Saliman)
+ * - Fixed broken compilation of LUFA under C++ compilers when the Serial peripheral module header file is included in a C++ source file
+ * - Fixed missing semicolon in the UC3 architecture host pipe functions
+ * - Fixed failed compilation for the XMEGA architecture if USB_DEVICE_ONLY us not specified
+ * - Fixed UC3 architecture ignoring the pipe size when Pipe_ConfigurePipe() is called
* - Library Applications:
* - Added reliability patches to the AVRISP-MKII Clone project's PDI/TPI protocols (thanks to Justin Mattair)
* - Fixed AVRISP-MKII Clone compile warning on AVR8 U4 targets even when NO_VTARGET_DETECT is enabled
* - Fixed AVRISP-MKII Clone failing to start application firmware once a TPI programming session is exited
+ * - Fixed DFU class bootloader not resetting the LED pins as high impedance inputs when a software jump to the user applications is requested
+ * - Fixed AVRISP-MKII Clone timing out on long programming commands such as programming the EEPROM on an ATMEGA8 (thanks to Martin Kelling)
+ * - Fixed invalid PID value used in the TempDataLogger project host application (thanks to Anupam Pathak)
*
* \section Sec_ChangeLog111009 Version 111009
* <b>New:</b>
diff --git a/LUFA/DoxygenPages/CompileTimeTokens.txt b/LUFA/DoxygenPages/CompileTimeTokens.txt
index e96f7c16..61c6f275 100644
--- a/LUFA/DoxygenPages/CompileTimeTokens.txt
+++ b/LUFA/DoxygenPages/CompileTimeTokens.txt
@@ -17,192 +17,203 @@
* \section Sec_SummaryNonUSBTokens Non USB Related Tokens
* This section describes compile tokens which affect non-USB sections of the LUFA library.
*
- * <b>DISABLE_TERMINAL_CODES</b> - (\ref Group_Terminal) - <i>All Architectures</i> \n
- * If an application contains ANSI terminal control codes listed in TerminalCodes.h, it might be desired to remove them
- * at compile time for use with a terminal which is non-ANSI control code aware, without modifying the source code. If
- * this token is defined, all ANSI control codes in the application code from the TerminalCodes.h header are removed from
- * the source code at compile time.
+ * - <b>DISABLE_TERMINAL_CODES</b> - (\ref Group_Terminal) - <i>All Architectures</i> \n
+ * If an application contains ANSI terminal control codes listed in TerminalCodes.h, it might be desired to remove them
+ * at compile time for use with a terminal which is non-ANSI control code aware, without modifying the source code. If
+ * this token is defined, all ANSI control codes in the application code from the TerminalCodes.h header are removed from
+ * the source code at compile time.
*
*
* \section Sec_SummaryUSBClassTokens USB Class Driver Related Tokens
* This section describes compile tokens which affect USB class-specific drivers in the LUFA library.
*
- * <b>HID_HOST_BOOT_PROTOCOL_ONLY</b> - (\ref Group_USBClassHIDHost) - <i>All Architectures</i> \n
- * By default, the USB HID Host class driver is designed to work with HID devices using either the Boot or Report HID
- * communication protocols. On devices where the Report protocol is not used (i.e. in applications where only basic
- * Mouse or Keyboard operation is desired, using boot compatible devices), the code responsible for the Report protocol
- * mode can be removed to save space in the compiled application by defining this token. When defined, it is still necessary
- * to explicitly put the attached device into Boot protocol mode via a call to \ref HID_Host_SetBootProtocol().
- *
- * <b>HID_STATETABLE_STACK_DEPTH</b>=<i>x</i> - (\ref Group_HIDParser) - <i>All Architectures</i> \n
- * <i>Supported Architectures:</i> All \n
- * HID reports may contain PUSH and POP elements, to store and retrieve the current HID state table onto a stack. This
- * allows for reports to save the state table before modifying it slightly for a data item, and then restore the previous
- * state table in a compact manner. This token may be defined to a non-zero 8-bit value to give the maximum depth of the state
- * table stack. If not defined, this defaults to the value indicated in the HID.h file documentation.
- *
- * <b>HID_USAGE_STACK_DEPTH</b>=<i>x</i> - (\ref Group_HIDParser) - <i>All Architectures</i> \n
- * HID reports generally contain many USAGE elements, which are assigned to INPUT, OUTPUT and FEATURE items in succession
- * when multiple items are defined at once (via REPORT COUNT elements). This allows for several items to be defined with
- * different usages in a compact manner. This token may be defined to a non-zero 8-bit value to set the maximum depth of the
- * usage stack, indicating the maximum number of USAGE items which can be stored temporarily until the next INPUT, OUTPUT
- * and FEATURE item. If not defined, this defaults to the value indicated in the HID.h file documentation.
- *
- * <b>HID_MAX_COLLECTIONS</b>=<i>x</i> - (\ref Group_HIDParser) - <i>All Architectures</i> \n
- * HID reports generally contain several COLLECTION elements, used to group related data items together. Collection information
- * is stored separately in the processed usage structure (and referred to by the data elements in the structure) to save space.
- * This token may be defined to a non-zero 8-bit value to set the maximum number of COLLECTION items which can be processed by the
- * parser into the resultant processed report structure. If not defined, this defaults to the value indicated in the HID.h file
- * documentation.
- *
- * <b>HID_MAX_REPORTITEMS</b>=<i>x</i> - (\ref Group_HIDParser) - <i>All Architectures</i> \n
- * All HID reports contain one or more INPUT, OUTPUT and/or FEATURE items describing the data which can be sent to and from the HID
- * device. Each item has associated usages, bit offsets in the item reports and other associated data indicating the manner in which
- * the report data should be interpreted by the host. This token may be defined to a non-zero 8-bit value to set the maximum number of
- * data elements which can be stored in the processed HID report structure, including INPUT, OUTPUT and (if enabled) FEATURE items.
- * If a item has a multiple count (i.e. a REPORT COUNT of more than 1), each item in the report count is placed separately in the
- * processed HID report table. If not defined, this defaults to the value indicated in the HID.h file documentation.
- *
- * <b>HID_MAX_REPORT_IDS</b>=<i>x</i> - (\ref Group_HIDParser) - <i>All Architectures</i> \n
- * HID reports may contain several report IDs, to logically distinguish grouped device data from one another - for example, a combination
- * keyboard and mouse might use report IDs to separate the keyboard reports from the mouse reports. In order to determine the size of each
- * report, and thus know how many bytes must be read or written, the size of each report (IN, OUT and FEATURE) must be calculated and
- * stored. This token may be defined to a non-zero 8-bit value to set the maximum number of report IDs in a device which can be processed
- * and their sizes calculated/stored into the resultant processed report structure. If not defined, this defaults to the value indicated in
- * the HID.h file documentation.
- *
- * <b>NO_CLASS_DRIVER_AUTOFLUSH</b> - (\ref Group_USBClassDrivers) - <i>All Architectures</i> \n
- * Many of the device and host mode class drivers automatically flush any data waiting to be written to an interface, when the corresponding
- * USB management task is executed. This is usually desirable to ensure that any queued data is sent as soon as possible once and new data is
- * constructed in the main program loop. However, if flushing is to be controlled manually by the user application via the *_Flush() commands,
- * the compile time token may be defined in the application's makefile to disable automatic flushing during calls to the class driver USB
- * management tasks.
+ * - <b>HID_HOST_BOOT_PROTOCOL_ONLY</b> - (\ref Group_USBClassHIDHost) - <i>All Architectures</i> \n
+ * By default, the USB HID Host class driver is designed to work with HID devices using either the Boot or Report HID
+ * communication protocols. On devices where the Report protocol is not used (i.e. in applications where only basic
+ * Mouse or Keyboard operation is desired, using boot compatible devices), the code responsible for the Report protocol
+ * mode can be removed to save space in the compiled application by defining this token. When defined, it is still necessary
+ * to explicitly put the attached device into Boot protocol mode via a call to \ref HID_Host_SetBootProtocol().
+ *
+ * - <b>HID_STATETABLE_STACK_DEPTH</b>=<i>x</i> - (\ref Group_HIDParser) - <i>All Architectures</i> \n
+ * HID reports may contain PUSH and POP elements, to store and retrieve the current HID state table onto a stack. This
+ * allows for reports to save the state table before modifying it slightly for a data item, and then restore the previous
+ * state table in a compact manner. This token may be defined to a non-zero 8-bit value to give the maximum depth of the state
+ * table stack. If not defined, this defaults to the value indicated in the HID.h file documentation.
+ *
+ * - <b>HID_USAGE_STACK_DEPTH</b>=<i>x</i> - (\ref Group_HIDParser) - <i>All Architectures</i> \n
+ * HID reports generally contain many USAGE elements, which are assigned to INPUT, OUTPUT and FEATURE items in succession
+ * when multiple items are defined at once (via REPORT COUNT elements). This allows for several items to be defined with
+ * different usages in a compact manner. This token may be defined to a non-zero 8-bit value to set the maximum depth of the
+ * usage stack, indicating the maximum number of USAGE items which can be stored temporarily until the next INPUT, OUTPUT
+ * and FEATURE item. If not defined, this defaults to the value indicated in the HID.h file documentation.
+ *
+ * - <b>HID_MAX_COLLECTIONS</b>=<i>x</i> - (\ref Group_HIDParser) - <i>All Architectures</i> \n
+ * HID reports generally contain several COLLECTION elements, used to group related data items together. Collection information
+ * is stored separately in the processed usage structure (and referred to by the data elements in the structure) to save space.
+ * This token may be defined to a non-zero 8-bit value to set the maximum number of COLLECTION items which can be processed by the
+ * parser into the resultant processed report structure. If not defined, this defaults to the value indicated in the HID.h file
+ * documentation.
+ *
+ * - <b>HID_MAX_REPORTITEMS</b>=<i>x</i> - (\ref Group_HIDParser) - <i>All Architectures</i> \n
+ * All HID reports contain one or more INPUT, OUTPUT and/or FEATURE items describing the data which can be sent to and from the HID
+ * device. Each item has associated usages, bit offsets in the item reports and other associated data indicating the manner in which
+ * the report data should be interpreted by the host. This token may be defined to a non-zero 8-bit value to set the maximum number of
+ * data elements which can be stored in the processed HID report structure, including INPUT, OUTPUT and (if enabled) FEATURE items.
+ * If a item has a multiple count (i.e. a REPORT COUNT of more than 1), each item in the report count is placed separately in the
+ * processed HID report table. If not defined, this defaults to the value indicated in the HID.h file documentation.
+ *
+ * - <b>HID_MAX_REPORT_IDS</b>=<i>x</i> - (\ref Group_HIDParser) - <i>All Architectures</i> \n
+ * HID reports may contain several report IDs, to logically distinguish grouped device data from one another - for example, a combination
+ * keyboard and mouse might use report IDs to separate the keyboard reports from the mouse reports. In order to determine the size of each
+ * report, and thus know how many bytes must be read or written, the size of each report (IN, OUT and FEATURE) must be calculated and
+ * stored. This token may be defined to a non-zero 8-bit value to set the maximum number of report IDs in a device which can be processed
+ * and their sizes calculated/stored into the resultant processed report structure. If not defined, this defaults to the value indicated in
+ * the HID.h file documentation.
+ *
+ * - <b>NO_CLASS_DRIVER_AUTOFLUSH</b> - (\ref Group_USBClassDrivers) - <i>All Architectures</i> \n
+ * Many of the device and host mode class drivers automatically flush any data waiting to be written to an interface, when the corresponding
+ * USB management task is executed. This is usually desirable to ensure that any queued data is sent as soon as possible once and new data is
+ * constructed in the main program loop. However, if flushing is to be controlled manually by the user application via the *_Flush() commands,
+ * the compile time token may be defined in the application's makefile to disable automatic flushing during calls to the class driver USB
+ * management tasks.
+ *
*
* \section Sec_SummaryUSBTokens General USB Driver Related Tokens
* This section describes compile tokens which affect USB driver stack as a whole in the LUFA library.
*
- * <b>ORDERED_EP_CONFIG</b> - (\ref Group_EndpointManagement , \ref Group_PipeManagement) - <i>AVR8, UC3</i> \n
- * The USB AVRs do not allow for Endpoints and Pipes to be configured out of order; they <i>must</i> be configured in an ascending order to
- * prevent data corruption issues. However, by default LUFA employs a workaround to allow for unordered Endpoint/Pipe initialization. This compile
- * time token may be used to restrict the initialization order to ascending indexes only in exchange for a smaller compiled binary size. Use
- * caution when applied to applications using the library USB Class drivers; the user application must ensure that all endpoints and pipes are
- * allocated sequentially.
- *
- * <b>USE_STATIC_OPTIONS</b>=<i>x</i> - (\ref Group_USBManagement) - <i>All Architectures</i> \n
- * By default, the USB_Init() function accepts dynamic options at runtime to alter the library behaviour, including whether the USB pad
- * voltage regulator is enabled, and the device speed when in device mode. By defining this token to a mask comprised of the USB options
- * mask defines usually passed as the Options parameter to USB_Init(), the resulting compiled binary can be decreased in size by removing
- * the dynamic options code, and replacing it with the statically set options. When defined, the USB_Init() function no longer accepts an
- * Options parameter.
- *
- * <b>USB_DEVICE_ONLY</b> - (\ref Group_USBManagement) - <i>All Architectures</i> \n
- * For the USB AVR models supporting both device and host USB modes, the USB_Init() function contains a Mode parameter which specifies the
- * mode the library should be initialized to. If only device mode is required, the code for USB host mode can be removed from the binary to
- * save space. When defined, the USB_Init() function no longer accepts a Mode parameter. This define is irrelevant on smaller USB AVRs which
- * do not support host mode.
- *
- * <b>USB_HOST_ONLY</b> - (\ref Group_USBManagement) - <i>All Architectures</i> \n
- * Same as USB_DEVICE_ONLY, except the library is fixed to USB host mode rather than USB device mode. Not available on some USB AVR models.
- *
- * <b>USB_STREAM_TIMEOUT_MS</b>=<i>x</i> - (\ref Group_USBManagement) - <i>All Architectures</i> \n
- * When endpoint and/or pipe stream functions are used, by default there is a timeout between each transfer which the connected device or host
- * must satisfy, or the stream function aborts the remaining data transfer. This token may be defined to a non-zero 16-bit value to set the timeout
- * period for stream transfers, specified in milliseconds. If not defined, the default value specified in LowLevel.h is used instead.
- *
- * <b>NO_LIMITED_CONTROLLER_CONNECT</b> - (\ref Group_Events) - <i>AVR8 Only</i> \n
- * On the smaller USB AVRs, the USB controller lacks VBUS events to determine the physical connection state of the USB bus to a host. In lieu of
- * VBUS events, the library attempts to determine the connection state via the bus suspension and wake up events instead. This however may be
- * slightly inaccurate due to the possibility of the host suspending the bus while the device is still connected. If accurate connection status is
- * required, the VBUS line of the USB connector should be routed to an AVR pin to detect its level, so that the USB_DeviceState global
- * can be accurately set and the \ref EVENT_USB_Device_Connect() and \ref EVENT_USB_Device_Disconnect() events manually raised by the RAISE_EVENT macro.
- * When defined, this token disables the library's auto-detection of the connection state by the aforementioned suspension and wake up events.
- *
- * <b>NO_SOF_EVENTS</b> - (\ref Group_Events) - <i>All Architectures</i> \n
- * By default, there exists a LUFA application event for the start of each USB frame while the USB bus is not suspended in either host or device mode.
- * This event can be selectively enabled or disabled by calling the appropriate device or host mode function. When this compile time token is defined,
- * the ability to receive USB Start of Frame events via the \ref EVENT_USB_Device_StartOfFrame() or \ref EVENT_USB_Host_StartOfFrame() events is removed,
- * reducing the compiled program's binary size.
+ * - <b>ORDERED_EP_CONFIG</b> - (\ref Group_EndpointManagement , \ref Group_PipeManagement) - <i>AVR8, UC3</i> \n
+ * The USB AVRs do not allow for Endpoints and Pipes to be configured out of order; they <i>must</i> be configured in an ascending order to
+ * prevent data corruption issues. However, by default LUFA employs a workaround to allow for unordered Endpoint/Pipe initialization. This compile
+ * time token may be used to restrict the initialization order to ascending indexes only in exchange for a smaller compiled binary size. Use
+ * caution when applied to applications using the library USB Class drivers; the user application must ensure that all endpoints and pipes are
+ * allocated sequentially.
+ *
+ * - <b>USE_STATIC_OPTIONS</b>=<i>x</i> - (\ref Group_USBManagement) - <i>All Architectures</i> \n
+ * By default, the USB_Init() function accepts dynamic options at runtime to alter the library behaviour, including whether the USB pad
+ * voltage regulator is enabled, and the device speed when in device mode. By defining this token to a mask comprised of the USB options
+ * mask defines usually passed as the Options parameter to USB_Init(), the resulting compiled binary can be decreased in size by removing
+ * the dynamic options code, and replacing it with the statically set options. When defined, the USB_Init() function no longer accepts an
+ * Options parameter.
+ *
+ * - <b>USB_DEVICE_ONLY</b> - (\ref Group_USBManagement) - <i>All Architectures</i> \n
+ * For the USB AVR models supporting both device and host USB modes, the USB_Init() function contains a Mode parameter which specifies the
+ * mode the library should be initialized to. If only device mode is required, the code for USB host mode can be removed from the binary to
+ * save space. When defined, the USB_Init() function no longer accepts a Mode parameter. This define is irrelevant on smaller USB AVRs which
+ * do not support host mode.
+ *
+ * - <b>USB_HOST_ONLY</b> - (\ref Group_USBManagement) - <i>All Architectures</i> \n
+ * Same as USB_DEVICE_ONLY, except the library is fixed to USB host mode rather than USB device mode. Not available on some USB AVR models.
+ *
+ * - <b>USB_STREAM_TIMEOUT_MS</b>=<i>x</i> - (\ref Group_USBManagement) - <i>All Architectures</i> \n
+ * When endpoint and/or pipe stream functions are used, by default there is a timeout between each transfer which the connected device or host
+ * must satisfy, or the stream function aborts the remaining data transfer. This token may be defined to a non-zero 16-bit value to set the timeout
+ * period for stream transfers, specified in milliseconds. If not defined, the default value specified in LowLevel.h is used instead.
+ *
+ * - <b>NO_LIMITED_CONTROLLER_CONNECT</b> - (\ref Group_Events) - <i>AVR8 Only</i> \n
+ * On the smaller USB AVRs, the USB controller lacks VBUS events to determine the physical connection state of the USB bus to a host. In lieu of
+ * VBUS events, the library attempts to determine the connection state via the bus suspension and wake up events instead. This however may be
+ * slightly inaccurate due to the possibility of the host suspending the bus while the device is still connected. If accurate connection status is
+ * required, the VBUS line of the USB connector should be routed to an AVR pin to detect its level, so that the USB_DeviceState global
+ * can be accurately set and the \ref EVENT_USB_Device_Connect() and \ref EVENT_USB_Device_Disconnect() events manually raised by the RAISE_EVENT macro.
+ * When defined, this token disables the library's auto-detection of the connection state by the aforementioned suspension and wake up events.
+ *
+ * - <b>NO_SOF_EVENTS</b> - (\ref Group_Events) - <i>All Architectures</i> \n
+ * By default, there exists a LUFA application event for the start of each USB frame while the USB bus is not suspended in either host or device mode.
+ * This event can be selectively enabled or disabled by calling the appropriate device or host mode function. When this compile time token is defined,
+ * the ability to receive USB Start of Frame events via the \ref EVENT_USB_Device_StartOfFrame() or \ref EVENT_USB_Host_StartOfFrame() events is removed,
+ * reducing the compiled program's binary size.
+ *
*
* \section Sec_SummaryUSBDeviceTokens USB Device Mode Driver Related Tokens
* This section describes compile tokens which affect USB driver stack of the LUFA library when used in Device mode.
*
- * <b>USE_RAM_DESCRIPTORS</b> - (\ref Group_StdDescriptors) - <i>AVR8 Only</i> \n
- * Define this token to indicate to the USB driver that all device descriptors are stored in RAM, rather than being located in any one
- * of the AVR's memory spaces. RAM descriptors may be desirable in applications where the descriptors need to be modified at runtime.
- *
- * <b>USE_FLASH_DESCRIPTORS</b> - (\ref Group_StdDescriptors) - <i>AVR8 Only</i> \n
- * Similar to USE_RAM_DESCRIPTORS, but all descriptors are stored in the AVR's FLASH memory rather than RAM.
- *
- * <b>USE_EEPROM_DESCRIPTORS</b> - (\ref Group_StdDescriptors) - <i>AVR8 Only</i> \n
- * Similar to USE_RAM_DESCRIPTORS, but all descriptors are stored in the AVR's EEPROM memory rather than RAM.
- *
- * <b>NO_INTERNAL_SERIAL</b> - (\ref Group_StdDescriptors) - <i>All Architectures</i> \n
- * Some AVR models contain a unique serial number which can be used as the device serial number, while in device mode. This allows
- * the host to uniquely identify the device regardless of if it is moved between USB ports on the same computer, allowing allocated
- * resources (such as drivers, COM Port number allocations) to be preserved. This is not needed in many apps, and so the code that
- * performs this task can be disabled by defining this option and passing it to the compiler via the -D switch.
- *
- * <b>FIXED_CONTROL_ENDPOINT_SIZE</b>=<i>x</i> - (\ref Group_EndpointManagement) - <i>All Architectures</i> \n
- * By default, the library determines the size of the control endpoint (when in device mode) by reading the device descriptor.
- * Normally this reduces the amount of configuration required for the library, allows the value to change dynamically (if
- * descriptors are stored in EEPROM or RAM rather than flash memory) and reduces code maintenance. However, this token can be
- * defined to a non-zero value instead to give the size in bytes of the control endpoint, to reduce the size of the compiled
- * binary.
- *
- * <b>DEVICE_STATE_AS_GPIOR</b> - (\ref Group_Device) - <i>AVR8 Only</i> \n
- * One of the most frequently used global variables in the stack is the USB_DeviceState global, which indicates the current state of
- * the Device State Machine. To reduce the amount of code and time required to access and modify this global in an application, this token
- * 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
- * reserved for application use. When defined, the corresponding GPIOR register should not be used within the user application except
- * implicitly via the library APIs.
- *
- * <b>FIXED_NUM_CONFIGURATIONS</b>=<i>x</i> - (\ref Group_Device) - <i>All Architectures</i> \n
- * By default, the library determines the number of configurations a USB device supports by reading the device descriptor. This reduces
- * the amount of configuration required to set up the library, and allows the value to change dynamically (if descriptors are stored in
- * EEPROM or RAM rather than flash memory) and reduces code maintenance. However, this value may be fixed via this token in the project
- * makefile to reduce the compiled size of the binary at the expense of flexibility.
- *
- * <b>CONTROL_ONLY_DEVICE</b> - (\ref Group_Device) - <i>All Architectures</i> \n
- * In some limited USB device applications, there are no device endpoints other than the control endpoint; i.e. all device communication
- * is through control endpoint requests. Defining this token will remove several features related to the selection and control of device
- * endpoints internally, saving space. Generally, this is usually only useful in (some) bootloaders and is best avoided.
- *
- * <b>INTERRUPT_CONTROL_ENDPOINT</b> - (\ref Group_USBManagement) - <i>All Architectures</i> \n
- * Some applications prefer to not call the USB_USBTask() management task regularly while in device mode, as it can complicate code significantly.
- * Instead, when device mode is used this token can be passed to the library via the -D switch to allow the library to manage the USB control
- * endpoint entirely via USB controller interrupts asynchronously to the user application. When defined, USB_USBTask() does not need to be called
- * when in USB device mode.
- *
- * <b>NO_DEVICE_REMOTE_WAKEUP</b> - (\ref Group_Device) - <i>All Architectures</i> \n
- * Many devices do not require the use of the Remote Wakeup features of USB, used to wake up the USB host when suspended. On these devices,
- * the code required to manage device Remote Wakeup can be disabled by defining this token and passing it to the library via the -D switch.
- *
- * <b>NO_DEVICE_SELF_POWER</b> - (\ref Group_Device) - <i>All Architectures</i> \n
- * USB devices may be bus powered, self powered, or a combination of both. When a device can be both bus powered and self powered, the host may
- * query the device to determine the current power source, via \ref USB_Device_CurrentlySelfPowered. For solely bus powered devices, this global
- * and the code required to manage it may be disabled by passing this token to the library via the -D switch.
+ * - <b>USE_RAM_DESCRIPTORS</b> - (\ref Group_StdDescriptors) - <i>AVR8 Only</i> \n
+ * Define this token to indicate to the USB driver that all device descriptors are stored in RAM, rather than being located in any one
+ * of the AVR's memory spaces. RAM descriptors may be desirable in applications where the descriptors need to be modified at runtime.
+ *
+ * - <b>USE_FLASH_DESCRIPTORS</b> - (\ref Group_StdDescriptors) - <i>AVR8 Only</i> \n
+ * Similar to USE_RAM_DESCRIPTORS, but all descriptors are stored in the AVR's FLASH memory rather than RAM.
+ *
+ * - <b>USE_EEPROM_DESCRIPTORS</b> - (\ref Group_StdDescriptors) - <i>AVR8 Only</i> \n
+ * Similar to USE_RAM_DESCRIPTORS, but all descriptors are stored in the AVR's EEPROM memory rather than RAM.
+ *
+ * - <b>NO_INTERNAL_SERIAL</b> - (\ref Group_StdDescriptors) - <i>All Architectures</i> \n
+ * Some AVR models contain a unique serial number which can be used as the device serial number, while in device mode. This allows
+ * the host to uniquely identify the device regardless of if it is moved between USB ports on the same computer, allowing allocated
+ * resources (such as drivers, COM Port number allocations) to be preserved. This is not needed in many apps, and so the code that
+ * performs this task can be disabled by defining this option and passing it to the compiler via the -D switch.
+ *
+ * - <b>FIXED_CONTROL_ENDPOINT_SIZE</b>=<i>x</i> - (\ref Group_EndpointManagement) - <i>All Architectures</i> \n
+ * By default, the library determines the size of the control endpoint (when in device mode) by reading the device descriptor.
+ * Normally this reduces the amount of configuration required for the library, allows the value to change dynamically (if
+ * descriptors are stored in EEPROM or RAM rather than flash memory) and reduces code maintenance. However, this token can be
+ * defined to a non-zero value instead to give the size in bytes of the control endpoint, to reduce the size of the compiled
+ * binary.
+ *
+ * - <b>DEVICE_STATE_AS_GPIOR</b> - (\ref Group_Device) - <i>AVR8 Only</i> \n
+ * One of the most frequently used global variables in the stack is the USB_DeviceState global, which indicates the current state of
+ * the Device State Machine. To reduce the amount of code and time required to access and modify this global in an application, this token
+ * 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
+ * reserved for application use. When defined, the corresponding GPIOR register should not be used within the user application except
+ * implicitly via the library APIs.
+ *
+ * - <b>FIXED_NUM_CONFIGURATIONS</b>=<i>x</i> - (\ref Group_Device) - <i>All Architectures</i> \n
+ * By default, the library determines the number of configurations a USB device supports by reading the device descriptor. This reduces
+ * the amount of configuration required to set up the library, and allows the value to change dynamically (if descriptors are stored in
+ * EEPROM or RAM rather than flash memory) and reduces code maintenance. However, this value may be fixed via this token in the project
+ * makefile to reduce the compiled size of the binary at the expense of flexibility.
+ *
+ * - <b>CONTROL_ONLY_DEVICE</b> - (\ref Group_Device) - <i>All Architectures</i> \n
+ * In some limited USB device applications, there are no device endpoints other than the control endpoint; i.e. all device communication
+ * is through control endpoint requests. Defining this token will remove several features related to the selection and control of device
+ * endpoints internally, saving space. Generally, this is usually only useful in (some) bootloaders and is best avoided.
+ *
+ * - <b>INTERRUPT_CONTROL_ENDPOINT</b> - (\ref Group_USBManagement) - <i>All Architectures</i> \n
+ * Some applications prefer to not call the USB_USBTask() management task regularly while in device mode, as it can complicate code significantly.
+ * Instead, when device mode is used this token can be passed to the library via the -D switch to allow the library to manage the USB control
+ * endpoint entirely via USB controller interrupts asynchronously to the user application. When defined, USB_USBTask() does not need to be called
+ * when in USB device mode.
+ *
+ * - <b>NO_DEVICE_REMOTE_WAKEUP</b> - (\ref Group_Device) - <i>All Architectures</i> \n
+ * Many devices do not require the use of the Remote Wakeup features of USB, used to wake up the USB host when suspended. On these devices,
+ * the code required to manage device Remote Wakeup can be disabled by defining this token and passing it to the library via the -D switch.
+ *
+ * - <b>NO_DEVICE_SELF_POWER</b> - (\ref Group_Device) - <i>All Architectures</i> \n
+ * USB devices may be bus powered, self powered, or a combination of both. When a device can be both bus powered and self powered, the host may
+ * query the device to determine the current power source, via \ref USB_Device_CurrentlySelfPowered. For solely bus powered devices, this global
+ * and the code required to manage it may be disabled by passing this token to the library via the -D switch.
*
*
* \section Sec_SummaryUSBHostTokens USB Host Mode Driver Related Tokens
*
* This section describes compile tokens which affect USB driver stack of the LUFA library when used in Host mode.
*
- * <b>HOST_STATE_AS_GPIOR</b> - (\ref Group_Host) - <i>AVR8 Only</i> \n
- * One of the most frequently used global variables in the stack is the USB_HostState global, which indicates the current state of
- * the Host State Machine. To reduce the amount of code and time required to access and modify this global in an application, this token
- * 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
- * reserved for application use. When defined, the corresponding GPIOR register should not be used within the user application except
- * implicitly via the library APIs.
- *
- * <b>USB_HOST_TIMEOUT_MS</b>=<i>x</i> - (\ref Group_Host) - <i>All Architectures</i> \n
- * When a control transfer is initiated in host mode to an attached device, a timeout is used to abort the transfer if the attached
- * device fails to respond within the timeout period. This token may be defined to a non-zero 16-bit value to set the timeout period for
- * control transfers, specified in milliseconds. If not defined, the default value specified in Host.h is used instead.
- *
- * <b>HOST_DEVICE_SETTLE_DELAY_MS</b>=<i>x</i> - (\ref Group_Host) - <i>All Architectures</i> \n
- * Some devices require a delay of up to 5 seconds after they are connected to VBUS before the enumeration process can be started, or
- * they will fail to enumerate correctly. By placing a delay before the enumeration process, it can be ensured that the bus has settled
- * back to a known idle state before communications occur with the device. This token may be defined to a 16-bit value to set the device
- * settle period, specified in milliseconds. If not defined, the default value specified in Host.h is used instead.
+ * - <b>HOST_STATE_AS_GPIOR</b> - (\ref Group_Host) - <i>AVR8 Only</i> \n
+ * One of the most frequently used global variables in the stack is the USB_HostState global, which indicates the current state of
+ * the Host State Machine. To reduce the amount of code and time required to access and modify this global in an application, this token
+ * 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
+ * reserved for application use. When defined, the corresponding GPIOR register should not be used within the user application except
+ * implicitly via the library APIs.
+ *
+ * - <b>USB_HOST_TIMEOUT_MS</b>=<i>x</i> - (\ref Group_Host) - <i>All Architectures</i> \n
+ * When a control transfer is initiated in host mode to an attached device, a timeout is used to abort the transfer if the attached
+ * device fails to respond within the timeout period. This token may be defined to a non-zero 16-bit value to set the timeout period for
+ * control transfers, specified in milliseconds. If not defined, the default value specified in Host.h is used instead.
+ *
+ * - <b>HOST_DEVICE_SETTLE_DELAY_MS</b>=<i>x</i> - (\ref Group_Host) - <i>All Architectures</i> \n
+ * Some devices require a delay of up to 5 seconds after they are connected to VBUS before the enumeration process can be started, or
+ * they will fail to enumerate correctly. By placing a delay before the enumeration process, it can be ensured that the bus has settled
+ * back to a known idle state before communications occur with the device. This token may be defined to a 16-bit value to set the device
+ * settle period, specified in milliseconds. If not defined, the default value specified in Host.h is used instead.
+ *
+ * - <b>INVERTED_VBUS_ENABLE_LINE</b> - (\ref Group_Host) - <i>All Architectures</i> \n
+ * If enabled, this will indicate that the USB target VBUS line polarity is inverted; i.e. it should be pulled low to enable VBUS to the
+ * target, and pulled high to stop the target VBUS generation.
+ *
+ * \note On AVR8 architecture devices, this compile time option requires \c NO_AUTO_VBUS_MANAGEMENT to be set.
+ *
+ * - <b>NO_AUTO_VBUS_MANAGEMENT</b> - (\ref Group_Host) - <i>All Architectures</i> \n
+ * Disables the automatic management of VBUS to the target, i.e. automatic shut down in the even of an overcurrent situation. When enabled, VBUS
+ * is enabled while the USB controller is initialized in USB Host mode.
*/
diff --git a/LUFA/DoxygenPages/DeviceSupport.txt b/LUFA/DoxygenPages/DeviceSupport.txt
index 0a8912f1..ecf173a2 100644
--- a/LUFA/DoxygenPages/DeviceSupport.txt
+++ b/LUFA/DoxygenPages/DeviceSupport.txt
@@ -104,11 +104,13 @@
* - Arduino Uno
* - Busware BUI
* - Busware CUL V3
- * - Fletchtronics Bumble-B (using officially recommended peripheral layout)
+ * - Busware TUL
+ * - Fletchtronics Bumble-B (using manufacturer recommended peripheral layout)
* - Kernel Concepts USBFOO
* - Linnix UDIP
* - MattairTech JM-DB-U2
* - Maximus USB
+ * - Micropendous Boards (many versions)
* - Microsin AVR-USB162
* - Minimus USB
* - Olimex AVR-USB-162
@@ -315,6 +317,16 @@
* <td bgcolor="#EE0000">No</td>
* </tr>
* <tr>
+ * <td>ATXMEGA64A4U</td>
+ * <td bgcolor="#00EE00">Yes</td>
+ * <td bgcolor="#EE0000">No</td>
+ * </tr>
+ * <tr>
+ * <td>ATXMEGA128A4U</td>
+ * <td bgcolor="#00EE00">Yes</td>
+ * <td bgcolor="#EE0000">No</td>
+ * </tr>
+ * <tr>
* <td>ATXMEGA64A3U</td>
* <td bgcolor="#00EE00">Yes</td>
* <td bgcolor="#EE0000">No</td>
@@ -369,6 +381,7 @@
* \section Sec_XMEGASupport_Boards Supported Atmel Boards
* Currently supported Atmel XMEGA boards (see \ref Group_BoardTypes):
* - XMEGA A3BU Xplained
+ * - XMEGA B1 Xplained
*
* \section Sec_XMEGASupport_ThirdParty Supported Third Party Models
* Currently supported third-party boards (see \ref Group_BoardTypes for makefile \c BOARD constant names):
diff --git a/LUFA/DoxygenPages/Groups.txt b/LUFA/DoxygenPages/Groups.txt
index bac362bf..321779d7 100644
--- a/LUFA/DoxygenPages/Groups.txt
+++ b/LUFA/DoxygenPages/Groups.txt
@@ -4,22 +4,40 @@
* documentation pages. It is not a project source file.
*/
-/** @defgroup Group_BoardDrivers Board Drivers
+/** \defgroup Group_BoardDrivers Board Drivers
*
* Functions, macros, variables, enums and types related to the control of physical board hardware.
*/
-/** @defgroup Group_PeripheralDrivers On-chip Peripheral Drivers
+/** \defgroup Group_PeripheralDrivers On-chip Peripheral Drivers
*
* Functions, macros, variables, enums and types related to the control of AVR subsystems.
*/
-/** @defgroup Group_MiscDrivers Miscellaneous Drivers
+/** \defgroup Group_MiscDrivers Miscellaneous Drivers
*
* Miscellaneous driver Functions, macros, variables, enums and types.
*/
-/** @defgroup Group_PlatformDrivers System Platform Drivers
+/** \defgroup Group_PlatformDrivers System Platform Drivers
*
* Drivers relating to the general architecture platform, such as clock setup and interrupt management.
*/
+
+/** \defgroup Group_PlatformDrivers_AVR8 AVR8
+ * \ingroup Group_PlatformDrivers
+ *
+ * Drivers relating to the AVR8 architecture platform, such as clock setup and interrupt management.
+ */
+
+/** \defgroup Group_PlatformDrivers_XMEGA XMEGA
+ * \ingroup Group_PlatformDrivers
+ *
+ * Drivers relating to the XMEGA architecture platform, such as clock setup and interrupt management.
+ */
+
+/** \defgroup Group_PlatformDrivers_UC3 UC3
+ * \ingroup Group_PlatformDrivers
+ *
+ * Drivers relating to the UC3 architecture platform, such as clock setup and interrupt management.
+ */
diff --git a/LUFA/DoxygenPages/LUFAPoweredProjects.txt b/LUFA/DoxygenPages/LUFAPoweredProjects.txt
index 9dbace6e..d15ade2b 100644
--- a/LUFA/DoxygenPages/LUFAPoweredProjects.txt
+++ b/LUFA/DoxygenPages/LUFAPoweredProjects.txt
@@ -47,6 +47,7 @@
* - CD Driver Emulator Dongle for ISO Files: http://cdemu.blogspot.com/
* - ClockTamer, a configurable clock generator: http://code.google.com/p/clock-tamer/
* - Collection of alternative Arduino Uno firmwares: http://hunt.net.nz/users/darran/
+ * - Computer controlled LED matrix (Russian): http://we.easyelectronics.ru/AVR/nebolshoy-primer-s-lufa-hidapi.html
* - CULFW, a 868MHz RF packet encoder/decoder: http://www.koeniglich.de/culfw/culfw.html
* - Dashkey, a custom PC keyboard controller: http://geekhack.org/showwiki.php?title=Island:19096
* - DIY PS3 controller emulator: https://code.google.com/p/diyps3controller/
@@ -68,12 +69,12 @@
* - MakeTV Episode Dispenser: http://www.youtube.com/watch?v=BkWUi18hl3g
* - MidiMonster, a USB-to-MIDI gateway board: http://www.dorkbotpdx.org/wiki/midimonster
* - MIDI Theremin: http://baldwisdom.com/usb-midi-controller-theremin-style-on-arduino-uno/
+ * - MIDI interface hack of a toy Guitar: http://blog.x37v.info/2011/06/26/toy-guitar-hacked-midi-conroller
* - MiniBloq, a graphical Ardunio programming environment : http://minibloq.org/
* - MiXley, a port of the Teacup 3D printer firmware for the USB AVRs: http://codaset.com/michielh/mixley
* - Mobo 4.3, a USB controlled all band (160-10m) HF SDR transceiver: http://sites.google.com/site/lofturj/mobo4_3
* - Moco, a native Arduino Uno MIDI replacement firmware: http://web.mac.com/kuwatay/morecat_lab./MocoLUFA.html
* - Motherboard BIOS flasher: http://www.coreboot.org/InSystemFlasher
- * - MRF49XA RF Tranceiver Dongle: http://www.github.com/hpux735/MRF49XA-Dongle
* - Multi-button Joystick (French): http://logicien-parfait.fr/dokuwiki/doku.php?id=projet:joystick
* - Music Playing Alarm Clock (Tutorial): http://www.instructables.com/id/Music-Playing-Alarm-Clock/
* - NeroJTAG, a JTAG dongle: https://github.com/makestuff/neroJtag
@@ -87,6 +88,7 @@
* - PSGroove, a Playstation 3 Homebrew dongle: http://github.com/psgroove
* - PS/2 to USB adapter: https://github.com/makestuff/p2ukbd
* - Reprap with LUFA, a LUFA powered 3D printer: http://code.google.com/p/at90usb1287-code-for-arduino-and-eclipse/
+ * - RF Transciever using the MRF49XA: http://alternet.us.com/?page_id=1494
* - SD Card reader: http://elasticsheep.com/2010/04/teensy2-usb-mass-storage-with-an-sd-card/
* - SDR1, a Software Defined Radio firmware: https://code.google.com/p/sdr-mk1/
* - SEGA Megadrive/Genesis Development Cartridge: http://www.makestuff.eu/wordpress/?page_id=398
@@ -100,6 +102,7 @@
* - Touchscreen Input Device: http://capnstech.blogspot.com/2010/07/touchscreen-update.html
* - Universal USB AVR Module: http://usbavr.bplaced.net/
* - USB2AX, a USB to Dynamixel network adapter: http://paranoidstudio.assembla.com/wiki/show/paranoidstudio/USB2AX
+ * - USB Infrared Receiver/Transmitter: http://vaton4.web2001.cz/
* - USB Interface for Playstation Portable Devices: http://forums.ps2dev.org/viewtopic.php?t=11001
* - USB MIDI to DMX controller: http://github.com/hanshuebner/miDiMX
* - USB powered Geiger Counter: http://uhrheber.wordpress.com/2011/04/28/a-usb-powered-geiger-counter-for-the-z2-and-other-computers/
@@ -149,4 +152,5 @@
* - Adafruit "Ask an Engineer", 7th November 2010
* - Arduino 2010 Keynote speech
* - The Amp Hour podcast blog #11
+ * - Blackhat 2011 conference, "Exploiting USB Devices with Arduino"
*/
diff --git a/LUFA/DoxygenPages/MigrationInformation.txt b/LUFA/DoxygenPages/MigrationInformation.txt
index 3fe03349..d2cc0a15 100644
--- a/LUFA/DoxygenPages/MigrationInformation.txt
+++ b/LUFA/DoxygenPages/MigrationInformation.txt
@@ -10,7 +10,7 @@
* to the next version released. It does not indicate all new additions to the library in each version change, only
* areas relevant to making older projects compatible with the API changes of each new release.
*
- * \section Sec_MigrationXXXXXX Migrating from 111009 to XXXXXX
+ * \section Sec_Migration120219 Migrating from 111009 to 120219
* <b>USB Core</b>
* - The HID_KEYBOARD_MODIFER_* macros in the HID class driver have been corrected to HID_KEYBOARD_MODIFIER_* (note the spelling of "modifier").
* Existing applications should switch over to the correctly spelled macro names.
@@ -18,6 +18,14 @@
* respective class driver files. Projects referencing the class driver source files by filename rather than the LUFA_SRC_USBCLASS makefile
* variable should append these postfixes to the source file names. Projects including the USB class driver dispatch headers directly should either
* switch to including the main USB driver header instead, or use the updated header filenames.
+ * - The USB_CONFIG_ATTR_BUSPOWERED constant has been renamed to USB_CONFIG_ATTR_RESERVED, as this was misnamed. All devices must set this bit in
+ * the Configuration descriptor's attributes field. As all devices are assumed to be bus-powered unless stated otherwise with the
+ * USB_CONFIG_ATTR_SELFPOWERED flag a replacement constant for bus powered devices is not provided.
+ *
+ * <b>Device Mode</b>
+ * - The device mode Audio class driver now requires a new user application callback, \ref CALLBACK_Audio_Device_GetSetInterfaceProperty().
+ * Existing applications must implement this new callback, however if no audio entities are defined in the audio device's descriptors,
+ * this function may be hard-coded to always return false for previous behaviour to be retained.
*
* \section Sec_Migration111009 Migrating from 110528 to 111009
* <b>Non-USB Library Components</b>
diff --git a/LUFA/Drivers/Board/AVR8/ADAFRUITU4/LEDs.h b/LUFA/Drivers/Board/AVR8/ADAFRUITU4/LEDs.h
index 97f20053..3fca6562 100644
--- a/LUFA/Drivers/Board/AVR8/ADAFRUITU4/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/ADAFRUITU4/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -80,6 +80,12 @@
PORTE &= ~LEDS_ALL_LEDS;
}
+ static inline void LEDs_Disable(void)
+ {
+ DDRE &= ~LEDS_ALL_LEDS;
+ PORTE &= ~LEDS_ALL_LEDS;
+ }
+
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
{
PORTE |= LEDMask;
@@ -92,18 +98,18 @@
static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)
{
- PORTE = ((PORTE & ~LEDS_ALL_LEDS) | LEDMask);
+ PORTE = ((PORTE & ~LEDS_ALL_LEDS) | LEDMask);
}
static inline void LEDs_ChangeLEDs(const uint8_t LEDMask,
const uint8_t ActiveMask)
{
- PORTE = ((PORTE & ~LEDMask) | ActiveMask);
+ PORTE = ((PORTE & ~LEDMask) | ActiveMask);
}
static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
{
- PORTE &= LEDMask;
+ PORTE ^= LEDMask;
}
static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
diff --git a/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/Buttons.h b/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/Buttons.h
index 0c382dfc..adec49ad 100644
--- a/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/Buttons.h
+++ b/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/Buttons.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -74,6 +74,12 @@
PORTD |= BUTTONS_BUTTON1;
}
+ static inline void Buttons_Disable(void)
+ {
+ DDRD &= ~BUTTONS_BUTTON1;
+ PORTD &= ~BUTTONS_BUTTON1;
+ }
+
static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint8_t Buttons_GetStatus(void)
{
diff --git a/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/LEDs.h b/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/LEDs.h
index 858b21ee..77fc05be 100644
--- a/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/ATAVRUSBRF01/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -92,6 +92,12 @@
PORTD &= ~LEDS_ALL_LEDS;
}
+ static inline void LEDs_Disable(void)
+ {
+ DDRD &= ~LEDS_ALL_LEDS;
+ PORTD &= ~LEDS_ALL_LEDS;
+ }
+
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
{
PORTD |= (LEDMask & LEDS_ALL_LEDS);
diff --git a/LUFA/Drivers/Board/AVR8/BENITO/Buttons.h b/LUFA/Drivers/Board/AVR8/BENITO/Buttons.h
index 3e722d62..a7ce1b5c 100644
--- a/LUFA/Drivers/Board/AVR8/BENITO/Buttons.h
+++ b/LUFA/Drivers/Board/AVR8/BENITO/Buttons.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -74,6 +74,12 @@
PORTD |= BUTTONS_BUTTON1;
}
+ static inline void Buttons_Disable(void)
+ {
+ DDRD &= ~BUTTONS_BUTTON1;
+ PORTD &= ~BUTTONS_BUTTON1;
+ }
+
static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint8_t Buttons_GetStatus(void)
{
diff --git a/LUFA/Drivers/Board/AVR8/BENITO/LEDs.h b/LUFA/Drivers/Board/AVR8/BENITO/LEDs.h
index 79096006..6e7de078 100644
--- a/LUFA/Drivers/Board/AVR8/BENITO/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/BENITO/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -83,6 +83,12 @@
PORTC |= LEDS_ALL_LEDS;
}
+ static inline void LEDs_Disable(void)
+ {
+ DDRC &= ~LEDS_ALL_LEDS;
+ PORTC &= ~LEDS_ALL_LEDS;
+ }
+
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
{
PORTC &= ~LEDMask;
diff --git a/LUFA/Drivers/Board/AVR8/BLACKCAT/LEDs.h b/LUFA/Drivers/Board/AVR8/BLACKCAT/LEDs.h
index 04a6a848..4313db57 100644
--- a/LUFA/Drivers/Board/AVR8/BLACKCAT/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/BLACKCAT/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -83,6 +83,12 @@
PORTD &= ~LEDS_ALL_LEDS;
}
+ static inline void LEDs_Disable(void)
+ {
+ DDRD &= ~LEDS_ALL_LEDS;
+ PORTD &= ~LEDS_ALL_LEDS;
+ }
+
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
{
PORTD |= LEDMask;
diff --git a/LUFA/Drivers/Board/AVR8/BUI/LEDs.h b/LUFA/Drivers/Board/AVR8/BUI/LEDs.h
index aeb757a8..f49f51d1 100644
--- a/LUFA/Drivers/Board/AVR8/BUI/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/BUI/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -82,7 +82,14 @@
#if !defined(__DOXYGEN__)
static inline void LEDs_Init(void)
{
- DDRC |= LEDS_ALL_LEDS;
+ DDRC |= LEDS_ALL_LEDS;
+ PORTC &= ~LEDS_ALL_LEDS;
+ }
+
+ static inline void LEDs_Disable(void)
+ {
+ DDRC &= ~LEDS_ALL_LEDS;
+ PORTC &= ~LEDS_ALL_LEDS;
}
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
diff --git a/LUFA/Drivers/Board/AVR8/BUMBLEB/Buttons.h b/LUFA/Drivers/Board/AVR8/BUMBLEB/Buttons.h
index c3860e08..8fdd0020 100644
--- a/LUFA/Drivers/Board/AVR8/BUMBLEB/Buttons.h
+++ b/LUFA/Drivers/Board/AVR8/BUMBLEB/Buttons.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -76,6 +76,12 @@
PORTD |= BUTTONS_BUTTON1;
}
+ static inline void Buttons_Disable(void)
+ {
+ DDRD &= ~BUTTONS_BUTTON1;
+ PORTD &= ~BUTTONS_BUTTON1;
+ }
+
static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint8_t Buttons_GetStatus(void)
{
diff --git a/LUFA/Drivers/Board/AVR8/BUMBLEB/Joystick.h b/LUFA/Drivers/Board/AVR8/BUMBLEB/Joystick.h
index 98665740..f9525368 100644
--- a/LUFA/Drivers/Board/AVR8/BUMBLEB/Joystick.h
+++ b/LUFA/Drivers/Board/AVR8/BUMBLEB/Joystick.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -91,7 +91,13 @@
static inline void Joystick_Init(void)
{
DDRD &= ~JOY_MASK;
- PORTD |= JOY_MASK;
+ PORTD |= JOY_MASK;
+ }
+
+ static inline void Joystick_Disable(void)
+ {
+ DDRD &= ~JOY_MASK;
+ PORTD &= ~JOY_MASK;
}
static inline uint8_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
diff --git a/LUFA/Drivers/Board/AVR8/BUMBLEB/LEDs.h b/LUFA/Drivers/Board/AVR8/BUMBLEB/LEDs.h
index fa53764e..9f82cc1f 100644
--- a/LUFA/Drivers/Board/AVR8/BUMBLEB/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/BUMBLEB/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -91,6 +91,12 @@
PORTB &= ~LEDS_ALL_LEDS;
}
+ static inline void LEDs_Disable(void)
+ {
+ DDRB &= ~LEDS_ALL_LEDS;
+ PORTB &= ~LEDS_ALL_LEDS;
+ }
+
static inline void LEDs_TurnOnLEDs(const uint8_t LedMask)
{
PORTB |= LedMask;
diff --git a/LUFA/Drivers/Board/AVR8/CULV3/Buttons.h b/LUFA/Drivers/Board/AVR8/CULV3/Buttons.h
index 8a39fa64..19e09fe8 100644
--- a/LUFA/Drivers/Board/AVR8/CULV3/Buttons.h
+++ b/LUFA/Drivers/Board/AVR8/CULV3/Buttons.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -74,6 +74,12 @@
PORTE |= BUTTONS_BUTTON1;
}
+ static inline void Buttons_Disable(void)
+ {
+ DDRE &= ~BUTTONS_BUTTON1;
+ PORTE &= ~BUTTONS_BUTTON1;
+ }
+
static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint8_t Buttons_GetStatus(void)
{
diff --git a/LUFA/Drivers/Board/AVR8/CULV3/LEDs.h b/LUFA/Drivers/Board/AVR8/CULV3/LEDs.h
index 86e5c0cf..3fb8c874 100644
--- a/LUFA/Drivers/Board/AVR8/CULV3/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/CULV3/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -80,6 +80,12 @@
PORTE &= ~LEDS_ALL_LEDS;
}
+ static inline void LEDs_Disable(void)
+ {
+ DDRE &= ~LEDS_ALL_LEDS;
+ PORTE &= ~LEDS_ALL_LEDS;
+ }
+
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
{
PORTE |= LEDMask;
diff --git a/LUFA/Drivers/Board/AVR8/EVK527/Buttons.h b/LUFA/Drivers/Board/AVR8/EVK527/Buttons.h
index 03c51d2e..89ba2742 100644
--- a/LUFA/Drivers/Board/AVR8/EVK527/Buttons.h
+++ b/LUFA/Drivers/Board/AVR8/EVK527/Buttons.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -74,6 +74,12 @@
PORTE |= BUTTONS_BUTTON1;
}
+ static inline void Buttons_Disable(void)
+ {
+ DDRE &= ~BUTTONS_BUTTON1;
+ PORTE &= ~BUTTONS_BUTTON1;
+ }
+
static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint8_t Buttons_GetStatus(void)
{
diff --git a/LUFA/Drivers/Board/AVR8/EVK527/Dataflash.h b/LUFA/Drivers/Board/AVR8/EVK527/Dataflash.h
index 5424dc75..595492fe 100644
--- a/LUFA/Drivers/Board/AVR8/EVK527/Dataflash.h
+++ b/LUFA/Drivers/Board/AVR8/EVK527/Dataflash.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -51,6 +51,7 @@
/* Includes: */
#include "../../../../Common/Common.h"
#include "../../../Misc/AT45DB321C.h"
+ #include "../../../Peripheral/SPI.h"
/* Preprocessor Checks: */
#if !defined(__INCLUDE_FROM_DATAFLASH_H)
@@ -94,7 +95,7 @@
/** Sends a byte to the currently selected dataflash IC, and returns a byte from the dataflash.
*
- * \param[in] Byte of data to send to the dataflash
+ * \param[in] Byte Byte of data to send to the dataflash
*
* \return Last response byte from the dataflash
*/
@@ -106,7 +107,7 @@
/** Sends a byte to the currently selected dataflash IC, and ignores the next byte from the dataflash.
*
- * \param[in] Byte of data to send to the dataflash
+ * \param[in] Byte Byte of data to send to the dataflash
*/
static inline void Dataflash_SendByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
static inline void Dataflash_SendByte(const uint8_t Byte)
diff --git a/LUFA/Drivers/Board/AVR8/EVK527/Joystick.h b/LUFA/Drivers/Board/AVR8/EVK527/Joystick.h
index 19d19ee7..5315c2e0 100644
--- a/LUFA/Drivers/Board/AVR8/EVK527/Joystick.h
+++ b/LUFA/Drivers/Board/AVR8/EVK527/Joystick.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -91,11 +91,20 @@
#if !defined(__DOXYGEN__)
static inline void Joystick_Init(void)
{
- DDRF &= ~(JOY_FMASK);
- DDRC &= ~(JOY_CMASK);
+ DDRF &= ~JOY_FMASK;
+ DDRC &= ~JOY_CMASK;
- PORTF |= JOY_FMASK;
- PORTC |= JOY_CMASK;
+ PORTF |= JOY_FMASK;
+ PORTC |= JOY_CMASK;
+ }
+
+ static inline void Joystick_Disable(void)
+ {
+ DDRF &= ~JOY_FMASK;
+ DDRC &= ~JOY_CMASK;
+
+ PORTF &= ~JOY_FMASK;
+ PORTC &= ~JOY_CMASK;
}
static inline uint8_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
diff --git a/LUFA/Drivers/Board/AVR8/EVK527/LEDs.h b/LUFA/Drivers/Board/AVR8/EVK527/LEDs.h
index 4cb6aeb0..551bba61 100644
--- a/LUFA/Drivers/Board/AVR8/EVK527/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/EVK527/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -86,6 +86,12 @@
PORTD &= ~LEDS_ALL_LEDS;
}
+ static inline void LEDs_Disable(void)
+ {
+ DDRD &= ~LEDS_ALL_LEDS;
+ PORTD &= ~LEDS_ALL_LEDS;
+ }
+
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
{
PORTD |= LEDMask;
diff --git a/LUFA/Drivers/Board/AVR8/JMDBU2/Buttons.h b/LUFA/Drivers/Board/AVR8/JMDBU2/Buttons.h
index 170eaeab..a3a246dd 100644
--- a/LUFA/Drivers/Board/AVR8/JMDBU2/Buttons.h
+++ b/LUFA/Drivers/Board/AVR8/JMDBU2/Buttons.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -74,6 +74,12 @@
PORTD |= BUTTONS_BUTTON1;
}
+ static inline void Buttons_Disable(void)
+ {
+ DDRD &= ~BUTTONS_BUTTON1;
+ PORTD &= ~BUTTONS_BUTTON1;
+ }
+
static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint8_t Buttons_GetStatus(void)
{
diff --git a/LUFA/Drivers/Board/AVR8/JMDBU2/LEDs.h b/LUFA/Drivers/Board/AVR8/JMDBU2/LEDs.h
index b3847b70..3361f58a 100644
--- a/LUFA/Drivers/Board/AVR8/JMDBU2/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/JMDBU2/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -80,6 +80,12 @@
PORTD &= ~LEDS_ALL_LEDS;
}
+ static inline void LEDs_Disable(void)
+ {
+ DDRD &= ~LEDS_ALL_LEDS;
+ PORTD &= ~LEDS_ALL_LEDS;
+ }
+
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
{
PORTD |= LEDMask;
diff --git a/LUFA/Drivers/Board/AVR8/MAXIMUS/LEDs.h b/LUFA/Drivers/Board/AVR8/MAXIMUS/LEDs.h
index f211e652..45ca1243 100644
--- a/LUFA/Drivers/Board/AVR8/MAXIMUS/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/MAXIMUS/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -83,6 +83,12 @@
PORTB &= ~LEDS_ALL_LEDS;
}
+ static inline void LEDs_Disable(void)
+ {
+ DDRB &= ~LEDS_ALL_LEDS;
+ PORTB &= ~LEDS_ALL_LEDS;
+ }
+
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
{
PORTB |= LEDMask;
diff --git a/LUFA/Drivers/Board/AVR8/MICROPENDOUS/Buttons.h b/LUFA/Drivers/Board/AVR8/MICROPENDOUS/Buttons.h
new file mode 100644
index 00000000..5c5825af
--- /dev/null
+++ b/LUFA/Drivers/Board/AVR8/MICROPENDOUS/Buttons.h
@@ -0,0 +1,196 @@
+/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2012.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+*/
+
+/*
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in
+ all copies and that both that the copyright notice and this
+ permission notice and warranty disclaimer appear in supporting
+ documentation, and that the name of the author not be used in
+ advertising or publicity pertaining to distribution of the
+ software without specific, written prior permission.
+
+ The author disclaim all warranties with regard to this
+ software, including all implied warranties of merchantability
+ and fitness. In no event shall the author be liable for any
+ special, indirect or consequential damages or any damages
+ whatsoever resulting from loss of use, data or profits, whether
+ in an action of contract, negligence or other tortious action,
+ arising out of or in connection with the use or performance of
+ this software.
+*/
+
+/** \file
+ * \brief Board specific Buttons driver header for the Micropendous series boards.
+ * \copydetails Group_Buttons_MICROPENDOUS_32U2
+ *
+ * \note This file should not be included directly. It is automatically included as needed by the Buttons driver
+ * dispatch header located in LUFA/Drivers/Board/Buttons.h.
+ */
+
+/** \ingroup Group_Buttons
+ * \defgroup Group_Buttons_MICROPENDOUS_A MICROPENDOUS_A
+ * \brief Board specific Button driver header for the Micropendous A (https://code.google.com/p/micropendous/wiki/MicropendousA).
+ *
+ * See \ref Group_Buttons_MICROPENDOUS_32U2 for more details.
+ */
+
+/** \ingroup Group_Buttons
+ * \defgroup Group_Buttons_MICROPENDOUS_1 MICROPENDOUS_1
+ * \brief Board specific Button driver header for the Micropendous 1 (https://code.google.com/p/micropendous/wiki/Micropendous1).
+ *
+ * See \ref Group_Buttons_MICROPENDOUS_32U2 for more details.
+ */
+
+/** \ingroup Group_Buttons
+ * \defgroup Group_Buttons_MICROPENDOUS_2 MICROPENDOUS_2
+ * \brief Board specific Button driver header for the Micropendous 2 (https://code.google.com/p/micropendous/wiki/Micropendous2).
+ *
+ * See \ref Group_Buttons_MICROPENDOUS_32U2 for more details.
+ */
+
+/** \ingroup Group_Buttons
+ * \defgroup Group_Buttons_MICROPENDOUS_3 MICROPENDOUS_3
+ * \brief Board specific Button driver header for the Micropendous 3 (https://code.google.com/p/micropendous/wiki/Micropendous3).
+ *
+ * See \ref Group_Buttons_MICROPENDOUS_32U2 for more details.
+ */
+
+/** \ingroup Group_Buttons
+ * \defgroup Group_Buttons_MICROPENDOUS_4 MICROPENDOUS_4
+ * \brief Board specific Button driver header for the Micropendous 4 (https://code.google.com/p/micropendous/wiki/Micropendous4).
+ *
+ * See \ref Group_Buttons_MICROPENDOUS_32U2 for more details.
+ */
+
+/** \ingroup Group_Buttons
+ * \defgroup Group_Buttons_MICROPENDOUS_DIP MICROPENDOUS_DIP
+ * \brief Board specific Button driver header for the Micropendous DIP (https://code.google.com/p/micropendous/wiki/MicropendousDIP).
+ *
+ * See \ref Group_Buttons_MICROPENDOUS_32U2 for more details.
+ */
+
+/** \ingroup Group_Buttons
+ * \defgroup Group_Buttons_MICROPENDOUS_REV1 MICROPENDOUS_REV1
+ * \brief Board specific Button driver header for the Micropendous Arduino-like Revision 1 (https://code.google.com/p/micropendous/wiki/Micropendous).
+ *
+ * See \ref Group_Buttons_MICROPENDOUS_32U2 for more details.
+ */
+
+/** \ingroup Group_Buttons
+ * \defgroup Group_Buttons_MICROPENDOUS_REV2 MICROPENDOUS_REV2
+ * \brief Board specific Button driver header for the Micropendous Arduino-like Revision 2 (https://code.google.com/p/micropendous/wiki/Micropendous).
+ *
+ * See \ref Group_Buttons_MICROPENDOUS_32U2 for more details.
+ */
+
+/** \ingroup Group_Buttons
+ * \defgroup Group_Buttons_MICROPENDOUS_32U2 MICROPENDOUS_32U2
+ * \brief Board specific Buttons driver header for the Micropendous 32U2.
+ *
+ * \note There are multiple supported Micropendous boards, compile with <code>BOARD = MICROPENDOUS_{VERSION}</code>.
+ *
+ * Board specific Buttons driver header for the Micropendous 32U2 (https://code.google.com/p/micropendous/wiki/Micropendous_32U2).
+ *
+ * @{
+ */
+
+#ifndef __BUTTONS_MICROPENDOUS_H__
+#define __BUTTONS_MICROPENDOUS_H__
+
+ /* Includes: */
+ #include "../../../../Common/Common.h"
+
+ /* Enable C linkage for C++ Compilers: */
+ #if defined(__cplusplus)
+ extern "C" {
+ #endif
+
+ /* Preprocessor Checks: */
+ #if !defined(__INCLUDE_FROM_BUTTONS_H)
+ #error Do not include this file directly. Include LUFA/Drivers/Board/Buttons.h instead.
+ #endif
+
+ /* Private Interface - For use in library only: */
+ #if !defined(__DOXYGEN__)
+ #if (BOARD == BOARD_MICROPENDOUS_32U2)
+ #define _BOARD_BUTTON1_MASK (1 << 7)
+ #define _BOARD_BUTTON_PORTLETTER D
+ #elif (BOARD == BOARD_MICROPENDOUS_A)
+ #define _BOARD_BUTTON1_MASK (1 << 2)
+ #define _BOARD_BUTTON_PORTLETTER E
+ #elif (BOARD == BOARD_MICROPENDOUS_1)
+ #define _BOARD_BUTTON1_MASK (1 << 7)
+ #define _BOARD_BUTTON_PORTLETTER D
+ #elif (BOARD == BOARD_MICROPENDOUS_2)
+ #define _BOARD_BUTTON1_MASK (1 << 2)
+ #define _BOARD_BUTTON_PORTLETTER E
+ #elif (BOARD == BOARD_MICROPENDOUS_3)
+ #define _BOARD_BUTTON1_MASK (1 << 2)
+ #define _BOARD_BUTTON_PORTLETTER E
+ #elif (BOARD == BOARD_MICROPENDOUS_4)
+ #define _BOARD_BUTTON1_MASK (1 << 2)
+ #define _BOARD_BUTTON_PORTLETTER E
+ #elif (BOARD == BOARD_MICROPENDOUS_DIP)
+ #define _BOARD_BUTTON1_MASK (1 << 2)
+ #define _BOARD_BUTTON_PORTLETTER E
+ #elif (BOARD == BOARD_MICROPENDOUS_REV1)
+ #define _BOARD_BUTTON1_MASK (1 << 2)
+ #define _BOARD_BUTTON_PORTLETTER E
+ #elif (BOARD == BOARD_MICROPENDOUS_REV2)
+ #define _BOARD_BUTTON1_MASK (1 << 2)
+ #define _BOARD_BUTTON_PORTLETTER E
+ #endif
+
+ #define _BOARD_BUTTON_CONCAT2(Reg, Letter) Reg ## Letter
+ #define _BOARD_BUTTON_CONCAT(Reg, Letter) _BOARD_BUTTON_CONCAT2(Reg, Letter)
+
+ #define _BOARD_BUTTON_PORT _BOARD_BUTTON_CONCAT(PORT, _BOARD_BUTTON_PORTLETTER)
+ #define _BOARD_BUTTON_PIN _BOARD_BUTTON_CONCAT(PIN, _BOARD_BUTTON_PORTLETTER)
+ #define _BOARD_BUTTON_DDR _BOARD_BUTTON_CONCAT(DDR, _BOARD_BUTTON_PORTLETTER)
+ #endif
+
+ /* Public Interface - May be used in end-application: */
+ /* Macros: */
+ /** Button mask for the first button on the board. */
+ #define BUTTONS_BUTTON1 _BOARD_BUTTON1_MASK
+
+ /* Inline Functions: */
+ #if !defined(__DOXYGEN__)
+ static inline void Buttons_Init(void)
+ {
+ _BOARD_BUTTON_DDR &= ~BUTTONS_BUTTON1;
+ _BOARD_BUTTON_PORT |= BUTTONS_BUTTON1;
+ }
+
+ static inline void Buttons_Disable(void)
+ {
+ _BOARD_BUTTON_DDR &= ~BUTTONS_BUTTON1;
+ _BOARD_BUTTON_PORT &= ~BUTTONS_BUTTON1;
+ }
+
+ static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
+ static inline uint8_t Buttons_GetStatus(void)
+ {
+ return ((_BOARD_BUTTON_PIN & BUTTONS_BUTTON1) ^ BUTTONS_BUTTON1);
+ }
+ #endif
+
+ /* Disable C linkage for C++ Compilers: */
+ #if defined(__cplusplus)
+ }
+ #endif
+
+#endif
+
+/** @} */
+
+
diff --git a/LUFA/Drivers/Board/AVR8/MICROPENDOUS/LEDs.h b/LUFA/Drivers/Board/AVR8/MICROPENDOUS/LEDs.h
new file mode 100644
index 00000000..649d961e
--- /dev/null
+++ b/LUFA/Drivers/Board/AVR8/MICROPENDOUS/LEDs.h
@@ -0,0 +1,164 @@
+/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2012.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+*/
+
+/*
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in
+ all copies and that both that the copyright notice and this
+ permission notice and warranty disclaimer appear in supporting
+ documentation, and that the name of the author not be used in
+ advertising or publicity pertaining to distribution of the
+ software without specific, written prior permission.
+
+ The author disclaim all warranties with regard to this
+ software, including all implied warranties of merchantability
+ and fitness. In no event shall the author be liable for any
+ special, indirect or consequential damages or any damages
+ whatsoever resulting from loss of use, data or profits, whether
+ in an action of contract, negligence or other tortious action,
+ arising out of or in connection with the use or performance of
+ this software.
+*/
+
+/** \file
+ * \brief Board specific LED driver header for the Micropendous-32U2.
+ * \copydetails Group_LEDs_MICROPENDOUS_32U2
+ *
+ * \note This file should not be included directly. It is automatically included as needed by the LEDs driver
+ * dispatch header located in LUFA/Drivers/Board/LEDs.h.
+ */
+
+/** \ingroup Group_LEDs
+ * \defgroup Group_LEDs_MICROPENDOUS_REV1 MICROPENDOUS_REV1
+ * \brief Board specific LED driver header for the Micropendous Arduino-like Revision 1 (https://code.google.com/p/micropendous/wiki/Micropendous).
+ *
+ * See \ref Group_LEDs_MICROPENDOUS_32U2 for more details.
+ */
+
+/** \ingroup Group_LEDs
+ * \defgroup Group_LEDs_MICROPENDOUS_REV2 MICROPENDOUS_REV2
+ * \brief Board specific LED driver header for the Micropendous Arduino-like Revision 2 (https://code.google.com/p/micropendous/wiki/Micropendous).
+ *
+ * See \ref Group_LEDs_MICROPENDOUS_32U2 for more details.
+ */
+
+/** \ingroup Group_LEDs
+ * \defgroup Group_LEDs_MICROPENDOUS_32U2 MICROPENDOUS_32U2
+ * \brief Board specific LED driver header for the Micropendous 32U2.
+ *
+ * Board specific LED driver header for the Micropendous 32U2 (https://code.google.com/p/micropendous/wiki/Micropendous_32U2).
+ *
+ * @{
+ */
+
+#ifndef __LEDS_MICROPENDOUS_H__
+#define __LEDS_MICROPENDOUS_H__
+
+ /* Includes: */
+ #include "../../../../Common/Common.h"
+
+ /* Enable C linkage for C++ Compilers: */
+ #if defined(__cplusplus)
+ extern "C" {
+ #endif
+
+ /* Preprocessor Checks: */
+ #if !defined(__INCLUDE_FROM_LEDS_H)
+ #error Do not include this file directly. Include LUFA/Drivers/Board/LEDS.h instead.
+ #endif
+
+ /* Private Interface - For use in library only: */
+ #if !defined(__DOXYGEN__)
+ #if (BOARD == BOARD_MICROPENDOUS_32U2)
+ #define _BOARD_LED1_MASK (1 << 6)
+ #define _BOARD_LED_PORTLETTER D
+ #elif (BOARD == BOARD_MICROPENDOUS_REV1)
+ #define _BOARD_LED1_MASK (1 << 1)
+ #define _BOARD_LED_PORTLETTER B
+ #elif (BOARD == BOARD_MICROPENDOUS_REV2)
+ #define _BOARD_LED1_MASK (1 << 1)
+ #define _BOARD_LED_PORTLETTER B
+ #endif
+
+ #define _BOARD_LED_CONCAT2(Reg, Letter) Reg ## Letter
+ #define _BOARD_LED_CONCAT(Reg, Letter) _BOARD_LED_CONCAT2(Reg, Letter)
+
+ #define _BOARD_LED_PORT _BOARD_LED_CONCAT(PORT, _BOARD_LED_PORTLETTER)
+ #define _BOARD_LED_DDR _BOARD_LED_CONCAT(DDR, _BOARD_LED_PORTLETTER)
+ #endif
+
+ /* Public Interface - May be used in end-application: */
+ /* Macros: */
+ /** LED mask for the first LED on the board. */
+ #define LEDS_LED1 _BOARD_LED1_MASK
+
+ /** LED mask for all the LEDs on the board. */
+ #define LEDS_ALL_LEDS LEDS_LED1
+
+ /** LED mask for the none of the board LEDs. */
+ #define LEDS_NO_LEDS 0
+
+ /* Inline Functions: */
+ #if !defined(__DOXYGEN__)
+ static inline void LEDs_Init(void)
+ {
+ _BOARD_LED_DDR |= LEDS_ALL_LEDS;
+ _BOARD_LED_PORT &= ~LEDS_ALL_LEDS;
+ }
+
+ static inline void LEDs_Disable(void)
+ {
+ _BOARD_LED_DDR &= ~LEDS_ALL_LEDS;
+ _BOARD_LED_PORT &= ~LEDS_ALL_LEDS;
+ }
+
+ static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
+ {
+ _BOARD_LED_PORT |= LEDMask;
+ }
+
+ static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)
+ {
+ _BOARD_LED_PORT &= ~LEDMask;
+ }
+
+ static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)
+ {
+ _BOARD_LED_PORT = ((PORTF & ~LEDS_ALL_LEDS) | LEDMask);
+ }
+
+ static inline void LEDs_ChangeLEDs(const uint8_t LEDMask,
+ const uint8_t ActiveMask)
+ {
+ _BOARD_LED_PORT = ((PORTF & ~LEDMask) | ActiveMask);
+ }
+
+ static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
+ {
+ _BOARD_LED_PORT ^= LEDMask;
+ }
+
+ static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
+ static inline uint8_t LEDs_GetLEDs(void)
+ {
+ return (_BOARD_LED_PORT & LEDS_ALL_LEDS);
+ }
+ #endif
+
+ /* Disable C linkage for C++ Compilers: */
+ #if defined(__cplusplus)
+ }
+ #endif
+
+#endif
+
+/** @} */
+
diff --git a/LUFA/Drivers/Board/AVR8/MICROSIN162/Buttons.h b/LUFA/Drivers/Board/AVR8/MICROSIN162/Buttons.h
index e3ba9578..27d75bfe 100644
--- a/LUFA/Drivers/Board/AVR8/MICROSIN162/Buttons.h
+++ b/LUFA/Drivers/Board/AVR8/MICROSIN162/Buttons.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -74,6 +74,12 @@
PORTD |= BUTTONS_BUTTON1;
}
+ static inline void Buttons_Disable(void)
+ {
+ DDRD &= ~BUTTONS_BUTTON1;
+ PORTD &= ~BUTTONS_BUTTON1;
+ }
+
static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint8_t Buttons_GetStatus(void)
{
diff --git a/LUFA/Drivers/Board/AVR8/MICROSIN162/LEDs.h b/LUFA/Drivers/Board/AVR8/MICROSIN162/LEDs.h
index 6e847292..36f610d0 100644
--- a/LUFA/Drivers/Board/AVR8/MICROSIN162/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/MICROSIN162/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -80,6 +80,12 @@
PORTD |= LEDS_ALL_LEDS;
}
+ static inline void LEDs_Disable(void)
+ {
+ DDRD &= ~LEDS_ALL_LEDS;
+ PORTD &= ~LEDS_ALL_LEDS;
+ }
+
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
{
PORTD &= ~LEDMask;
diff --git a/LUFA/Drivers/Board/AVR8/MINIMUS/Buttons.h b/LUFA/Drivers/Board/AVR8/MINIMUS/Buttons.h
index ef30a9b4..016ea2d3 100644
--- a/LUFA/Drivers/Board/AVR8/MINIMUS/Buttons.h
+++ b/LUFA/Drivers/Board/AVR8/MINIMUS/Buttons.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -74,6 +74,12 @@
PORTD |= BUTTONS_BUTTON1;
}
+ static inline void Buttons_Disable(void)
+ {
+ DDRD &= ~BUTTONS_BUTTON1;
+ PORTD &= ~BUTTONS_BUTTON1;
+ }
+
static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint8_t Buttons_GetStatus(void)
{
diff --git a/LUFA/Drivers/Board/AVR8/MINIMUS/LEDs.h b/LUFA/Drivers/Board/AVR8/MINIMUS/LEDs.h
index 124fbaaa..11ab648b 100644
--- a/LUFA/Drivers/Board/AVR8/MINIMUS/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/MINIMUS/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -83,6 +83,12 @@
PORTD |= LEDS_ALL_LEDS;
}
+ static inline void LEDs_Disable(void)
+ {
+ DDRD &= ~LEDS_ALL_LEDS;
+ PORTD &= ~LEDS_ALL_LEDS;
+ }
+
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
{
PORTD &= ~LEDMask;
diff --git a/LUFA/Drivers/Board/AVR8/OLIMEX162/Buttons.h b/LUFA/Drivers/Board/AVR8/OLIMEX162/Buttons.h
index 32a7511e..b6d75bed 100644
--- a/LUFA/Drivers/Board/AVR8/OLIMEX162/Buttons.h
+++ b/LUFA/Drivers/Board/AVR8/OLIMEX162/Buttons.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -74,6 +74,12 @@
PORTD |= BUTTONS_BUTTON1;
}
+ static inline void Buttons_Disable(void)
+ {
+ DDRD &= ~BUTTONS_BUTTON1;
+ PORTD &= ~BUTTONS_BUTTON1;
+ }
+
static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint8_t Buttons_GetStatus(void)
{
diff --git a/LUFA/Drivers/Board/AVR8/OLIMEX162/LEDs.h b/LUFA/Drivers/Board/AVR8/OLIMEX162/LEDs.h
index 9872b946..2e18e10c 100644
--- a/LUFA/Drivers/Board/AVR8/OLIMEX162/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/OLIMEX162/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -80,6 +80,12 @@
PORTD |= LEDS_ALL_LEDS;
}
+ static inline void LEDs_Disable(void)
+ {
+ DDRD &= ~LEDS_ALL_LEDS;
+ PORTD &= ~LEDS_ALL_LEDS;
+ }
+
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
{
PORTD &= ~LEDMask;
diff --git a/LUFA/Drivers/Board/AVR8/RZUSBSTICK/LEDs.h b/LUFA/Drivers/Board/AVR8/RZUSBSTICK/LEDs.h
index ed5c2c19..c85d8ad0 100644
--- a/LUFA/Drivers/Board/AVR8/RZUSBSTICK/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/RZUSBSTICK/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -102,6 +102,15 @@
PORTE |= (LEDS_PORTE_LEDS << LEDS_PORTE_MASK_SHIFT);
}
+ static inline void LEDs_Disable(void)
+ {
+ DDRD &= ~LEDS_PORTD_LEDS;
+ PORTD &= ~LEDS_PORTD_LEDS;
+
+ DDRE &= ~(LEDS_PORTE_LEDS << LEDS_PORTE_MASK_SHIFT);
+ PORTE &= ~(LEDS_PORTE_LEDS << LEDS_PORTE_MASK_SHIFT);
+ }
+
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
{
PORTD |= (LEDMask & LEDS_LED1);
diff --git a/LUFA/Drivers/Board/AVR8/SPARKFUN8U2/LEDs.h b/LUFA/Drivers/Board/AVR8/SPARKFUN8U2/LEDs.h
index 278bee5c..89853065 100644
--- a/LUFA/Drivers/Board/AVR8/SPARKFUN8U2/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/SPARKFUN8U2/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -80,6 +80,12 @@
PORTB |= LEDS_ALL_LEDS;
}
+ static inline void LEDs_Disable(void)
+ {
+ DDRB &= ~LEDS_ALL_LEDS;
+ PORTB &= ~LEDS_ALL_LEDS;
+ }
+
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
{
PORTB &= ~LEDMask;
diff --git a/LUFA/Drivers/Board/AVR8/STK525/Buttons.h b/LUFA/Drivers/Board/AVR8/STK525/Buttons.h
index d67a51df..13abb832 100644
--- a/LUFA/Drivers/Board/AVR8/STK525/Buttons.h
+++ b/LUFA/Drivers/Board/AVR8/STK525/Buttons.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -74,6 +74,12 @@
PORTE |= BUTTONS_BUTTON1;
}
+ static inline void Buttons_Disable(void)
+ {
+ DDRE &= ~BUTTONS_BUTTON1;
+ PORTE &= ~BUTTONS_BUTTON1;
+ }
+
static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint8_t Buttons_GetStatus(void)
{
diff --git a/LUFA/Drivers/Board/AVR8/STK525/Dataflash.h b/LUFA/Drivers/Board/AVR8/STK525/Dataflash.h
index 5b38bf72..67742977 100644
--- a/LUFA/Drivers/Board/AVR8/STK525/Dataflash.h
+++ b/LUFA/Drivers/Board/AVR8/STK525/Dataflash.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -51,6 +51,7 @@
/* Includes: */
#include "../../../../Common/Common.h"
#include "../../../Misc/AT45DB321C.h"
+ #include "../../../Peripheral/SPI.h"
/* Preprocessor Checks: */
#if !defined(__INCLUDE_FROM_DATAFLASH_H)
@@ -94,7 +95,7 @@
/** Sends a byte to the currently selected dataflash IC, and returns a byte from the dataflash.
*
- * \param[in] Byte of data to send to the dataflash
+ * \param[in] Byte Byte of data to send to the dataflash
*
* \return Last response byte from the dataflash
*/
@@ -106,7 +107,7 @@
/** Sends a byte to the currently selected dataflash IC, and ignores the next byte from the dataflash.
*
- * \param[in] Byte of data to send to the dataflash
+ * \param[in] Byte Byte of data to send to the dataflash
*/
static inline void Dataflash_SendByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
static inline void Dataflash_SendByte(const uint8_t Byte)
diff --git a/LUFA/Drivers/Board/AVR8/STK525/Joystick.h b/LUFA/Drivers/Board/AVR8/STK525/Joystick.h
index dcf7f2ed..8cc56535 100644
--- a/LUFA/Drivers/Board/AVR8/STK525/Joystick.h
+++ b/LUFA/Drivers/Board/AVR8/STK525/Joystick.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -91,11 +91,20 @@
#if !defined(__DOXYGEN__)
static inline void Joystick_Init(void)
{
- DDRB &= ~(JOY_BMASK);
- DDRE &= ~(JOY_EMASK);
+ DDRB &= ~JOY_BMASK;
+ DDRE &= ~JOY_EMASK;
- PORTB |= JOY_BMASK;
- PORTE |= JOY_EMASK;
+ PORTB |= JOY_BMASK;
+ PORTE |= JOY_EMASK;
+ }
+
+ static inline void Joystick_Disable(void)
+ {
+ DDRB &= ~JOY_BMASK;
+ DDRE &= ~JOY_EMASK;
+
+ PORTB &= ~JOY_BMASK;
+ PORTE &= ~JOY_EMASK;
}
static inline uint8_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
diff --git a/LUFA/Drivers/Board/AVR8/STK525/LEDs.h b/LUFA/Drivers/Board/AVR8/STK525/LEDs.h
index 2c81fd48..c0111a26 100644
--- a/LUFA/Drivers/Board/AVR8/STK525/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/STK525/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -89,6 +89,12 @@
PORTD &= ~LEDS_ALL_LEDS;
}
+ static inline void LEDs_Disable(void)
+ {
+ DDRD &= ~LEDS_ALL_LEDS;
+ PORTD &= ~LEDS_ALL_LEDS;
+ }
+
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
{
PORTD |= LEDMask;
diff --git a/LUFA/Drivers/Board/AVR8/STK526/Buttons.h b/LUFA/Drivers/Board/AVR8/STK526/Buttons.h
index e2000a92..2c6b9280 100644
--- a/LUFA/Drivers/Board/AVR8/STK526/Buttons.h
+++ b/LUFA/Drivers/Board/AVR8/STK526/Buttons.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -74,6 +74,12 @@
PORTD |= BUTTONS_BUTTON1;
}
+ static inline void Buttons_Disable(void)
+ {
+ DDRD &= ~BUTTONS_BUTTON1;
+ PORTD &= ~BUTTONS_BUTTON1;
+ }
+
static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint8_t Buttons_GetStatus(void)
{
diff --git a/LUFA/Drivers/Board/AVR8/STK526/Dataflash.h b/LUFA/Drivers/Board/AVR8/STK526/Dataflash.h
index b056802d..ce20ff1e 100644
--- a/LUFA/Drivers/Board/AVR8/STK526/Dataflash.h
+++ b/LUFA/Drivers/Board/AVR8/STK526/Dataflash.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -51,6 +51,7 @@
/* Includes: */
#include "../../../../Common/Common.h"
#include "../../../Misc/AT45DB642D.h"
+ #include "../../../Peripheral/SPI.h"
/* Preprocessor Checks: */
#if !defined(__INCLUDE_FROM_DATAFLASH_H)
@@ -94,7 +95,7 @@
/** Sends a byte to the currently selected dataflash IC, and returns a byte from the dataflash.
*
- * \param[in] Byte of data to send to the dataflash
+ * \param[in] Byte Byte of data to send to the dataflash
*
* \return Last response byte from the dataflash
*/
@@ -106,7 +107,7 @@
/** Sends a byte to the currently selected dataflash IC, and ignores the next byte from the dataflash.
*
- * \param[in] Byte of data to send to the dataflash
+ * \param[in] Byte Byte of data to send to the dataflash
*/
static inline void Dataflash_SendByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
static inline void Dataflash_SendByte(const uint8_t Byte)
diff --git a/LUFA/Drivers/Board/AVR8/STK526/Joystick.h b/LUFA/Drivers/Board/AVR8/STK526/Joystick.h
index 7c024fb3..3ab6e842 100644
--- a/LUFA/Drivers/Board/AVR8/STK526/Joystick.h
+++ b/LUFA/Drivers/Board/AVR8/STK526/Joystick.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -90,7 +90,14 @@
{
DDRB &= ~JOY_BMASK;
- PORTB |= JOY_BMASK;
+ PORTB |= JOY_BMASK;
+ }
+
+ static inline void Joystick_Disable(void)
+ {
+ DDRB &= ~JOY_BMASK;
+
+ PORTB &= ~JOY_BMASK;
}
static inline uint8_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
diff --git a/LUFA/Drivers/Board/AVR8/STK526/LEDs.h b/LUFA/Drivers/Board/AVR8/STK526/LEDs.h
index b77c691b..ed83356a 100644
--- a/LUFA/Drivers/Board/AVR8/STK526/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/STK526/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -89,6 +89,12 @@
PORTD &= ~LEDS_ALL_LEDS;
}
+ static inline void LEDs_Disable(void)
+ {
+ DDRD &= ~LEDS_ALL_LEDS;
+ PORTD &= ~LEDS_ALL_LEDS;
+ }
+
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
{
PORTD |= LEDMask;
diff --git a/LUFA/Drivers/Board/AVR8/TEENSY/LEDs.h b/LUFA/Drivers/Board/AVR8/TEENSY/LEDs.h
index 1722fe7d..9a71cf5d 100644
--- a/LUFA/Drivers/Board/AVR8/TEENSY/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/TEENSY/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -94,6 +94,12 @@
#endif
}
+ static inline void LEDs_Disable(void)
+ {
+ DDRD &= ~LEDS_ALL_LEDS;
+ PORTD &= ~LEDS_ALL_LEDS;
+ }
+
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
{
#if (BOARD == BOARD_TEENSY2)
diff --git a/LUFA/Drivers/Board/AVR8/TUL/Buttons.h b/LUFA/Drivers/Board/AVR8/TUL/Buttons.h
index 191caa9d..3eed13a4 100644
--- a/LUFA/Drivers/Board/AVR8/TUL/Buttons.h
+++ b/LUFA/Drivers/Board/AVR8/TUL/Buttons.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -74,6 +74,12 @@
PORTE |= BUTTONS_BUTTON1;
}
+ static inline void Buttons_Disable(void)
+ {
+ DDRE &= ~BUTTONS_BUTTON1;
+ PORTE &= ~BUTTONS_BUTTON1;
+ }
+
static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint8_t Buttons_GetStatus(void)
{
diff --git a/LUFA/Drivers/Board/AVR8/TUL/LEDs.h b/LUFA/Drivers/Board/AVR8/TUL/LEDs.h
index 4968a188..121f3f48 100644
--- a/LUFA/Drivers/Board/AVR8/TUL/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/TUL/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -80,6 +80,12 @@
PORTF &= ~LEDS_ALL_LEDS;
}
+ static inline void LEDs_Disable(void)
+ {
+ DDRF &= ~LEDS_ALL_LEDS;
+ PORTF &= ~LEDS_ALL_LEDS;
+ }
+
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
{
PORTF |= LEDMask;
diff --git a/LUFA/Drivers/Board/AVR8/UDIP/Buttons.h b/LUFA/Drivers/Board/AVR8/UDIP/Buttons.h
index 61ae9b8b..b0783641 100644
--- a/LUFA/Drivers/Board/AVR8/UDIP/Buttons.h
+++ b/LUFA/Drivers/Board/AVR8/UDIP/Buttons.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -74,6 +74,12 @@
PORTD |= BUTTONS_BUTTON1;
}
+ static inline void Buttons_Disable(void)
+ {
+ DDRD &= ~BUTTONS_BUTTON1;
+ PORTD &= ~BUTTONS_BUTTON1;
+ }
+
static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint8_t Buttons_GetStatus(void)
{
diff --git a/LUFA/Drivers/Board/AVR8/UDIP/LEDs.h b/LUFA/Drivers/Board/AVR8/UDIP/LEDs.h
index 53789038..30eb9ad7 100644
--- a/LUFA/Drivers/Board/AVR8/UDIP/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/UDIP/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -98,6 +98,12 @@
DDRD |= (LEDS_PORTD_LEDS << LEDS_PORTD_MASK_SHIFT);
}
+ static inline void LEDs_Disable(void)
+ {
+ DDRB &= ~LEDS_PORTB_LEDS;
+ DDRD &= ~(LEDS_PORTD_LEDS << LEDS_PORTD_MASK_SHIFT);
+ }
+
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
{
PORTB |= (LEDMask & LEDS_PORTB_LEDS);
diff --git a/LUFA/Drivers/Board/AVR8/UNO/LEDs.h b/LUFA/Drivers/Board/AVR8/UNO/LEDs.h
index 0205b2df..1fddba7d 100644
--- a/LUFA/Drivers/Board/AVR8/UNO/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/UNO/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -83,6 +83,12 @@
PORTD |= LEDS_ALL_LEDS;
}
+ static inline void LEDs_Disable(void)
+ {
+ DDRD &= ~LEDS_ALL_LEDS;
+ PORTD &= ~LEDS_ALL_LEDS;
+ }
+
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
{
PORTD &= ~LEDMask;
diff --git a/LUFA/Drivers/Board/AVR8/USB2AX/Buttons.h b/LUFA/Drivers/Board/AVR8/USB2AX/Buttons.h
index 4e1e5003..9b83acf9 100644
--- a/LUFA/Drivers/Board/AVR8/USB2AX/Buttons.h
+++ b/LUFA/Drivers/Board/AVR8/USB2AX/Buttons.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -83,6 +83,12 @@
PORTD |= BUTTONS_BUTTON1;
}
+ static inline void Buttons_Disable(void)
+ {
+ DDRD &= ~BUTTONS_BUTTON1;
+ PORTD &= ~BUTTONS_BUTTON1;
+ }
+
static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint8_t Buttons_GetStatus(void)
{
diff --git a/LUFA/Drivers/Board/AVR8/USB2AX/LEDs.h b/LUFA/Drivers/Board/AVR8/USB2AX/LEDs.h
index 541da264..c34715e5 100644
--- a/LUFA/Drivers/Board/AVR8/USB2AX/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/USB2AX/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -104,6 +104,17 @@
#endif
}
+ static inline void LEDs_Disable(void)
+ {
+ #if (BOARD == BOARD_USB2AX)
+ DDRC &= ~LEDS_ALL_LEDS;
+ PORTC &= ~LEDS_ALL_LEDS;
+ #else
+ DDRD &= ~LEDS_ALL_LEDS;
+ PORTD &= ~LEDS_ALL_LEDS;
+ #endif
+ }
+
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
{
#if (BOARD == BOARD_USB2AX)
diff --git a/LUFA/Drivers/Board/AVR8/USBFOO/Buttons.h b/LUFA/Drivers/Board/AVR8/USBFOO/Buttons.h
index 21c6a1f2..d03918ce 100644
--- a/LUFA/Drivers/Board/AVR8/USBFOO/Buttons.h
+++ b/LUFA/Drivers/Board/AVR8/USBFOO/Buttons.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -74,6 +74,12 @@
PORTD |= BUTTONS_BUTTON1;
}
+ static inline void Buttons_Disable(void)
+ {
+ DDRD &= ~BUTTONS_BUTTON1;
+ PORTD &= ~BUTTONS_BUTTON1;
+ }
+
static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint8_t Buttons_GetStatus(void)
{
diff --git a/LUFA/Drivers/Board/AVR8/USBFOO/LEDs.h b/LUFA/Drivers/Board/AVR8/USBFOO/LEDs.h
index cb462583..f838983c 100644
--- a/LUFA/Drivers/Board/AVR8/USBFOO/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/USBFOO/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -80,6 +80,12 @@
PORTD |= LEDS_ALL_LEDS;
}
+ static inline void LEDs_Disable(void)
+ {
+ DDRD &= ~LEDS_ALL_LEDS;
+ PORTD &= ~LEDS_ALL_LEDS;
+ }
+
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
{
PORTD &= ~LEDMask;
diff --git a/LUFA/Drivers/Board/AVR8/USBKEY/Buttons.h b/LUFA/Drivers/Board/AVR8/USBKEY/Buttons.h
index 018bf6b1..3180725b 100644
--- a/LUFA/Drivers/Board/AVR8/USBKEY/Buttons.h
+++ b/LUFA/Drivers/Board/AVR8/USBKEY/Buttons.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -74,6 +74,12 @@
PORTE |= BUTTONS_BUTTON1;
}
+ static inline void Buttons_Disable(void)
+ {
+ DDRE &= ~BUTTONS_BUTTON1;
+ PORTE &= ~BUTTONS_BUTTON1;
+ }
+
static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint8_t Buttons_GetStatus(void)
{
diff --git a/LUFA/Drivers/Board/AVR8/USBKEY/Dataflash.h b/LUFA/Drivers/Board/AVR8/USBKEY/Dataflash.h
index 9808987f..5b71d7d8 100644
--- a/LUFA/Drivers/Board/AVR8/USBKEY/Dataflash.h
+++ b/LUFA/Drivers/Board/AVR8/USBKEY/Dataflash.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -51,6 +51,7 @@
/* Includes: */
#include "../../../../Common/Common.h"
#include "../../../Misc/AT45DB642D.h"
+ #include "../../../Peripheral/SPI.h"
/* Preprocessor Checks: */
#if !defined(__INCLUDE_FROM_DATAFLASH_H)
@@ -97,7 +98,7 @@
/** Sends a byte to the currently selected dataflash IC, and returns a byte from the dataflash.
*
- * \param[in] Byte of data to send to the dataflash
+ * \param[in] Byte Byte of data to send to the dataflash
*
* \return Last response byte from the dataflash
*/
@@ -109,7 +110,7 @@
/** Sends a byte to the currently selected dataflash IC, and ignores the next byte from the dataflash.
*
- * \param[in] Byte of data to send to the dataflash
+ * \param[in] Byte Byte of data to send to the dataflash
*/
static inline void Dataflash_SendByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
static inline void Dataflash_SendByte(const uint8_t Byte)
diff --git a/LUFA/Drivers/Board/AVR8/USBKEY/Joystick.h b/LUFA/Drivers/Board/AVR8/USBKEY/Joystick.h
index 5e80a536..8b6935b3 100644
--- a/LUFA/Drivers/Board/AVR8/USBKEY/Joystick.h
+++ b/LUFA/Drivers/Board/AVR8/USBKEY/Joystick.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -91,11 +91,20 @@
#if !defined(__DOXYGEN__)
static inline void Joystick_Init(void)
{
- DDRB &= ~(JOY_BMASK);
- DDRE &= ~(JOY_EMASK);
+ DDRB &= ~JOY_BMASK;
+ DDRE &= ~JOY_EMASK;
- PORTB |= JOY_BMASK;
- PORTE |= JOY_EMASK;
+ PORTB |= JOY_BMASK;
+ PORTE |= JOY_EMASK;
+ }
+
+ static inline void Joystick_Disable(void)
+ {
+ DDRB &= ~JOY_BMASK;
+ DDRE &= ~JOY_EMASK;
+
+ PORTB &= ~JOY_BMASK;
+ PORTE &= ~JOY_EMASK;
}
static inline uint8_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
diff --git a/LUFA/Drivers/Board/AVR8/USBKEY/LEDs.h b/LUFA/Drivers/Board/AVR8/USBKEY/LEDs.h
index e4a7002a..4ca7691a 100644
--- a/LUFA/Drivers/Board/AVR8/USBKEY/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/USBKEY/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -89,6 +89,12 @@
PORTD &= ~LEDS_ALL_LEDS;
}
+ static inline void LEDs_Disable(void)
+ {
+ DDRD &= ~LEDS_ALL_LEDS;
+ PORTD &= ~LEDS_ALL_LEDS;
+ }
+
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
{
PORTD |= LEDMask;
diff --git a/LUFA/Drivers/Board/AVR8/USBTINYMKII/Buttons.h b/LUFA/Drivers/Board/AVR8/USBTINYMKII/Buttons.h
index 20cb3405..6a6d78c1 100644
--- a/LUFA/Drivers/Board/AVR8/USBTINYMKII/Buttons.h
+++ b/LUFA/Drivers/Board/AVR8/USBTINYMKII/Buttons.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -74,6 +74,12 @@
PORTD |= BUTTONS_BUTTON1;
}
+ static inline void Buttons_Disable(void)
+ {
+ DDRD &= ~BUTTONS_BUTTON1;
+ PORTD &= ~BUTTONS_BUTTON1;
+ }
+
static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint8_t Buttons_GetStatus(void)
{
diff --git a/LUFA/Drivers/Board/AVR8/USBTINYMKII/LEDs.h b/LUFA/Drivers/Board/AVR8/USBTINYMKII/LEDs.h
index 00cfd2b4..0fcbf074 100644
--- a/LUFA/Drivers/Board/AVR8/USBTINYMKII/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/USBTINYMKII/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -86,6 +86,12 @@
PORTB &= ~LEDS_ALL_LEDS;
}
+ static inline void LEDs_Disable(void)
+ {
+ DDRB &= ~LEDS_ALL_LEDS;
+ PORTB &= ~LEDS_ALL_LEDS;
+ }
+
static inline void LEDs_TurnOnLEDs(const uint8_t LedMask)
{
PORTB |= LedMask;
diff --git a/LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h b/LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h
index 6a867caf..c9bdbdc3 100644
--- a/LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h
+++ b/LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -60,6 +60,7 @@
/* Includes: */
#include "../../../../Common/Common.h"
#include "../../../Misc/AT45DB642D.h"
+ #include "../../../Peripheral/SPI.h"
/* Preprocessor Checks: */
#if !defined(__INCLUDE_FROM_DATAFLASH_H)
@@ -109,7 +110,7 @@
/** Sends a byte to the currently selected dataflash IC, and returns a byte from the dataflash.
*
- * \param[in] Byte of data to send to the dataflash
+ * \param[in] Byte Byte of data to send to the dataflash
*
* \return Last response byte from the dataflash
*/
@@ -121,7 +122,7 @@
/** Sends a byte to the currently selected dataflash IC, and ignores the next byte from the dataflash.
*
- * \param[in] Byte of data to send to the dataflash
+ * \param[in] Byte Byte of data to send to the dataflash
*/
static inline void Dataflash_SendByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
static inline void Dataflash_SendByte(const uint8_t Byte)
diff --git a/LUFA/Drivers/Board/AVR8/XPLAIN/LEDs.h b/LUFA/Drivers/Board/AVR8/XPLAIN/LEDs.h
index 3abe98ee..93815487 100644
--- a/LUFA/Drivers/Board/AVR8/XPLAIN/LEDs.h
+++ b/LUFA/Drivers/Board/AVR8/XPLAIN/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -87,6 +87,12 @@
PORTB |= LEDS_ALL_LEDS;
}
+ static inline void LEDs_Disable(void)
+ {
+ DDRB &= ~LEDS_ALL_LEDS;
+ PORTB &= ~LEDS_ALL_LEDS;
+ }
+
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
{
PORTB &= ~LEDMask;
diff --git a/LUFA/Drivers/Board/Buttons.h b/LUFA/Drivers/Board/Buttons.h
index f60dbb50..bf852468 100644
--- a/LUFA/Drivers/Board/Buttons.h
+++ b/LUFA/Drivers/Board/Buttons.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -135,19 +135,30 @@
#include "XMEGA/A3BU_XPLAINED/Buttons.h"
#elif ((BOARD == BOARD_USB2AX) || (BOARD == BOARD_USB2AX_V3))
#include "AVR8/USB2AX/Buttons.h"
+ #elif ((BOARD == BOARD_MICROPENDOUS_32U2) || (BOARD == BOARD_MICROPENDOUS_A) || \
+ (BOARD == BOARD_MICROPENDOUS_1) || (BOARD == BOARD_MICROPENDOUS_2) || \
+ (BOARD == BOARD_MICROPENDOUS_3) || (BOARD == BOARD_MICROPENDOUS_4) || \
+ (BOARD == BOARD_MICROPENDOUS_REV1) || (BOARD == BOARD_MICROPENDOUS_REV2) || \
+ (BOARD == BOARD_MICROPENDOUS_DIP))
+ #include "AVR8/MICROPENDOUS/Buttons.h"
+ #elif (BOARD == BOARD_B1_XPLAINED)
+ #include "XMEGA/B1_XPLAINED/Buttons.h"
#else
#include "Board/Buttons.h"
#endif
/* Pseudo-Functions for Doxygen: */
#if defined(__DOXYGEN__)
- /** Initializes the BUTTONS driver, so that the current button position can be read. This sets the appropriate
+ /** Initializes the buttons driver, so that the current button position can be read. This sets the appropriate
* I/O pins to an inputs with pull-ups enabled.
*
* This must be called before any Button driver functions are used.
*/
static inline void Buttons_Init(void);
+ /** Disables the buttons driver, releasing the I/O pins back to their default high-impedence input mode. */
+ static inline void Buttons_Disable(void);
+
/** Returns a mask indicating which board buttons are currently pressed.
*
* \return Mask indicating which board buttons are currently pressed.
diff --git a/LUFA/Drivers/Board/Dataflash.h b/LUFA/Drivers/Board/Dataflash.h
index cd85237d..a5ae29dc 100644
--- a/LUFA/Drivers/Board/Dataflash.h
+++ b/LUFA/Drivers/Board/Dataflash.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -122,8 +122,7 @@
#define __INCLUDE_FROM_DATAFLASH_H
/* Includes: */
- #include "../../Common/Common.h"
- #include "../Peripheral/SPI.h"
+ #include "../../Common/Common.h"
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
@@ -148,7 +147,9 @@
/* Inline Functions: */
/** Initializes the dataflash driver so that commands and data may be sent to an attached dataflash IC.
*
- * \note The microcontroller's SPI driver must be initialized before any of the dataflash commands are used.
+ * \note The microcontroller's physical interface driver connected to the Dataflash IC must be initialized before
+ * any of the dataflash commands are used. This is usually a SPI hardware port, but on some devices/boards may
+ * be a USART operating in SPI Master mode.
*/
static inline void Dataflash_Init(void);
@@ -201,7 +202,7 @@
/** Sends a byte to the currently selected dataflash IC, and returns a byte from the dataflash.
*
- * \param[in] Byte of data to send to the dataflash
+ * \param[in] Byte Byte of data to send to the dataflash
*
* \return Last response byte from the dataflash
*/
@@ -209,7 +210,7 @@
/** Sends a byte to the currently selected dataflash IC, and ignores the next byte from the dataflash.
*
- * \param[in] Byte of data to send to the dataflash
+ * \param[in] Byte Byte of data to send to the dataflash
*/
static inline void Dataflash_SendByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
@@ -234,6 +235,8 @@
#include "AVR8/EVK527/Dataflash.h"
#elif (BOARD == BOARD_A3BU_XPLAINED)
#include "XMEGA/A3BU_XPLAINED/Dataflash.h"
+ #elif (BOARD == BOARD_B1_XPLAINED)
+ #include "XMEGA/B1_XPLAINED/Dataflash.h"
#else
#include "Board/Dataflash.h"
#endif
diff --git a/LUFA/Drivers/Board/Joystick.h b/LUFA/Drivers/Board/Joystick.h
index 95e90fad..0a1f9fa7 100644
--- a/LUFA/Drivers/Board/Joystick.h
+++ b/LUFA/Drivers/Board/Joystick.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -126,6 +126,9 @@
*/
static inline void Joystick_Init(void);
+ /** Disables the joystick driver, releasing the I/O pins back to their default high-impedence input mode. */
+ static inline void Joystick_Disable(void);
+
/** Returns the current status of the joystick, as a mask indicating the direction the joystick is
* currently facing in (multiple bits can be set).
*
diff --git a/LUFA/Drivers/Board/LEDs.h b/LUFA/Drivers/Board/LEDs.h
index e1f6b4c5..0c7324f5 100644
--- a/LUFA/Drivers/Board/LEDs.h
+++ b/LUFA/Drivers/Board/LEDs.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -175,6 +175,11 @@
#include "XMEGA/A3BU_XPLAINED/LEDs.h"
#elif ((BOARD == BOARD_USB2AX) || (BOARD == BOARD_USB2AX_V3))
#include "AVR8/USB2AX/LEDs.h"
+ #elif ((BOARD == BOARD_MICROPENDOUS_REV1) || (BOARD == BOARD_MICROPENDOUS_REV2) || \
+ (BOARD == BOARD_MICROPENDOUS_32U2))
+ #include "AVR8/MICROPENDOUS/LEDs.h"
+ #elif (BOARD == BOARD_B1_XPLAINED)
+ #include "XMEGA/B1_XPLAINED/LEDs.h"
#else
#include "Board/LEDs.h"
#endif
@@ -205,6 +210,9 @@
*/
static inline void LEDs_Init(void);
+ /** Disables the board LED driver, releasing the I/O pins back to their default high-impedence input mode. */
+ static inline void LEDs_Disable(void);
+
/** Turns on the LEDs specified in the given LED mask.
*
* \param[in] LEDMask Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file).
diff --git a/LUFA/Drivers/Board/Temperature.c b/LUFA/Drivers/Board/Temperature.c
index b9b7adc6..44316e74 100644
--- a/LUFA/Drivers/Board/Temperature.c
+++ b/LUFA/Drivers/Board/Temperature.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/Board/Temperature.h b/LUFA/Drivers/Board/Temperature.h
index 8b384424..6be21488 100644
--- a/LUFA/Drivers/Board/Temperature.h
+++ b/LUFA/Drivers/Board/Temperature.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/Board/UC3/EVK1100/Buttons.h b/LUFA/Drivers/Board/UC3/EVK1100/Buttons.h
index 10f02cf6..e1b34b18 100644
--- a/LUFA/Drivers/Board/UC3/EVK1100/Buttons.h
+++ b/LUFA/Drivers/Board/UC3/EVK1100/Buttons.h
@@ -1,18 +1,18 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
- www.fourwalledcubicle.com
+ www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
- Permission to use, copy, modify, and distribute this software
- and its documentation for any purpose and without fee is hereby
- granted, provided that the above copyright notice appear in all
- copies and that both that the copyright notice and this
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in
+ all copies and that both that the copyright notice and this
permission notice and warranty disclaimer appear in supporting
documentation, and that the name of the author not be used in
advertising or publicity pertaining to distribution of the
@@ -86,6 +86,12 @@
AVR32_GPIO.port[BUTTONS_PORT].puers = (BUTTONS_BUTTON1 | BUTTONS_BUTTON2);
}
+ static inline void Buttons_Disable(void)
+ {
+ AVR32_GPIO.port[BUTTONS_PORT].gperc = (BUTTONS_BUTTON1 | BUTTONS_BUTTON2);
+ AVR32_GPIO.port[BUTTONS_PORT].puerc = (BUTTONS_BUTTON1 | BUTTONS_BUTTON2);
+ }
+
static inline uint32_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint32_t Buttons_GetStatus(void)
{
diff --git a/LUFA/Drivers/Board/UC3/EVK1100/Joystick.h b/LUFA/Drivers/Board/UC3/EVK1100/Joystick.h
index aaf729b0..b9dbfbc0 100644
--- a/LUFA/Drivers/Board/UC3/EVK1100/Joystick.h
+++ b/LUFA/Drivers/Board/UC3/EVK1100/Joystick.h
@@ -1,18 +1,18 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
- www.fourwalledcubicle.com
+ www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
- Permission to use, copy, modify, and distribute this software
- and its documentation for any purpose and without fee is hereby
- granted, provided that the above copyright notice appear in all
- copies and that both that the copyright notice and this
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in
+ all copies and that both that the copyright notice and this
permission notice and warranty disclaimer appear in supporting
documentation, and that the name of the author not be used in
advertising or publicity pertaining to distribution of the
@@ -93,6 +93,12 @@
AVR32_GPIO.port[JOY_PORT].gpers = JOY_MASK;
};
+ static inline void Joystick_Disable(void)
+ {
+ AVR32_GPIO.port[JOY_PORT].gperc = JOY_MASK;
+ AVR32_GPIO.port[JOY_PORT].gperc = JOY_MASK;
+ };
+
static inline uint32_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint32_t Joystick_GetStatus(void)
{
diff --git a/LUFA/Drivers/Board/UC3/EVK1100/LEDs.h b/LUFA/Drivers/Board/UC3/EVK1100/LEDs.h
index 6fd1ac8c..43c3ecb4 100644
--- a/LUFA/Drivers/Board/UC3/EVK1100/LEDs.h
+++ b/LUFA/Drivers/Board/UC3/EVK1100/LEDs.h
@@ -1,18 +1,18 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
- www.fourwalledcubicle.com
+ www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
- Permission to use, copy, modify, and distribute this software
- and its documentation for any purpose and without fee is hereby
- granted, provided that the above copyright notice appear in all
- copies and that both that the copyright notice and this
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in
+ all copies and that both that the copyright notice and this
permission notice and warranty disclaimer appear in supporting
documentation, and that the name of the author not be used in
advertising or publicity pertaining to distribution of the
@@ -109,6 +109,13 @@
AVR32_GPIO.port[LEDS_PORT].ovrs = LEDS_ALL_LEDS;
}
+ static inline void LEDs_Disable(void)
+ {
+ AVR32_GPIO.port[LEDS_PORT].gperc = LEDS_ALL_LEDS;
+ AVR32_GPIO.port[LEDS_PORT].oderc = LEDS_ALL_LEDS;
+ AVR32_GPIO.port[LEDS_PORT].ovrc = LEDS_ALL_LEDS;
+ }
+
static inline void LEDs_TurnOnLEDs(const uint32_t LEDMask)
{
AVR32_GPIO.port[LEDS_PORT].ovrc = LEDMask;
diff --git a/LUFA/Drivers/Board/UC3/EVK1101/Buttons.h b/LUFA/Drivers/Board/UC3/EVK1101/Buttons.h
index 18c71170..2e89af45 100644
--- a/LUFA/Drivers/Board/UC3/EVK1101/Buttons.h
+++ b/LUFA/Drivers/Board/UC3/EVK1101/Buttons.h
@@ -1,18 +1,18 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
- www.fourwalledcubicle.com
+ www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
- Permission to use, copy, modify, and distribute this software
- and its documentation for any purpose and without fee is hereby
- granted, provided that the above copyright notice appear in all
- copies and that both that the copyright notice and this
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in
+ all copies and that both that the copyright notice and this
permission notice and warranty disclaimer appear in supporting
documentation, and that the name of the author not be used in
advertising or publicity pertaining to distribution of the
@@ -83,6 +83,12 @@
AVR32_GPIO.port[BUTTONS_PORT].puers = (BUTTONS_BUTTON1 | BUTTONS_BUTTON2);
}
+ static inline void Buttons_Disable(void)
+ {
+ AVR32_GPIO.port[BUTTONS_PORT].gperc = (BUTTONS_BUTTON1 | BUTTONS_BUTTON2);
+ AVR32_GPIO.port[BUTTONS_PORT].puerc = (BUTTONS_BUTTON1 | BUTTONS_BUTTON2);
+ }
+
static inline uint32_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint32_t Buttons_GetStatus(void)
{
diff --git a/LUFA/Drivers/Board/UC3/EVK1101/Joystick.h b/LUFA/Drivers/Board/UC3/EVK1101/Joystick.h
index 0481f833..9983374c 100644
--- a/LUFA/Drivers/Board/UC3/EVK1101/Joystick.h
+++ b/LUFA/Drivers/Board/UC3/EVK1101/Joystick.h
@@ -1,18 +1,18 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
- www.fourwalledcubicle.com
+ www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
- Permission to use, copy, modify, and distribute this software
- and its documentation for any purpose and without fee is hereby
- granted, provided that the above copyright notice appear in all
- copies and that both that the copyright notice and this
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in
+ all copies and that both that the copyright notice and this
permission notice and warranty disclaimer appear in supporting
documentation, and that the name of the author not be used in
advertising or publicity pertaining to distribution of the
@@ -98,6 +98,15 @@
AVR32_GPIO.port[JOY_PRESS_PORT].puers = JOY_PRESS_MASK;
};
+ static inline void Joystick_Disable(void)
+ {
+ AVR32_GPIO.port[JOY_MOVE_PORT].gperc = JOY_MOVE_MASK;
+ AVR32_GPIO.port[JOY_PRESS_PORT].gperc = JOY_PRESS_MASK;
+
+ AVR32_GPIO.port[JOY_MOVE_PORT].puerc = JOY_MOVE_MASK;
+ AVR32_GPIO.port[JOY_PRESS_PORT].puerc = JOY_PRESS_MASK;
+ };
+
static inline uint32_t Joystick_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint32_t Joystick_GetStatus(void)
{
diff --git a/LUFA/Drivers/Board/UC3/EVK1101/LEDs.h b/LUFA/Drivers/Board/UC3/EVK1101/LEDs.h
index 6feadbce..43f3949d 100644
--- a/LUFA/Drivers/Board/UC3/EVK1101/LEDs.h
+++ b/LUFA/Drivers/Board/UC3/EVK1101/LEDs.h
@@ -1,18 +1,18 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
- www.fourwalledcubicle.com
+ www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
- Permission to use, copy, modify, and distribute this software
- and its documentation for any purpose and without fee is hereby
- granted, provided that the above copyright notice appear in all
- copies and that both that the copyright notice and this
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in
+ all copies and that both that the copyright notice and this
permission notice and warranty disclaimer appear in supporting
documentation, and that the name of the author not be used in
advertising or publicity pertaining to distribution of the
@@ -96,6 +96,13 @@
AVR32_GPIO.port[LEDS_PORT].ovrs = LEDS_ALL_LEDS;
}
+ static inline void LEDs_Disable(void)
+ {
+ AVR32_GPIO.port[LEDS_PORT].gperc = LEDS_ALL_LEDS;
+ AVR32_GPIO.port[LEDS_PORT].oderc = LEDS_ALL_LEDS;
+ AVR32_GPIO.port[LEDS_PORT].ovrc = LEDS_ALL_LEDS;
+ }
+
static inline void LEDs_TurnOnLEDs(const uint32_t LEDMask)
{
AVR32_GPIO.port[LEDS_PORT].ovrc = LEDMask;
diff --git a/LUFA/Drivers/Board/UC3/EVK1104/Buttons.h b/LUFA/Drivers/Board/UC3/EVK1104/Buttons.h
index 934f9226..af8246d5 100644
--- a/LUFA/Drivers/Board/UC3/EVK1104/Buttons.h
+++ b/LUFA/Drivers/Board/UC3/EVK1104/Buttons.h
@@ -1,18 +1,18 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
- www.fourwalledcubicle.com
+ www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
- Permission to use, copy, modify, and distribute this software
- and its documentation for any purpose and without fee is hereby
- granted, provided that the above copyright notice appear in all
- copies and that both that the copyright notice and this
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in
+ all copies and that both that the copyright notice and this
permission notice and warranty disclaimer appear in supporting
documentation, and that the name of the author not be used in
advertising or publicity pertaining to distribution of the
@@ -80,6 +80,12 @@
AVR32_GPIO.port[BUTTONS_PORT].puers = (BUTTONS_BUTTON1 | BUTTONS_BUTTON2);
}
+ static inline void Buttons_Disable(void)
+ {
+ AVR32_GPIO.port[BUTTONS_PORT].gperc = (BUTTONS_BUTTON1 | BUTTONS_BUTTON2);
+ AVR32_GPIO.port[BUTTONS_PORT].puerc = (BUTTONS_BUTTON1 | BUTTONS_BUTTON2);
+ }
+
static inline uint32_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint32_t Buttons_GetStatus(void)
{
diff --git a/LUFA/Drivers/Board/UC3/EVK1104/LEDs.h b/LUFA/Drivers/Board/UC3/EVK1104/LEDs.h
index 5813e892..1f5863b0 100644
--- a/LUFA/Drivers/Board/UC3/EVK1104/LEDs.h
+++ b/LUFA/Drivers/Board/UC3/EVK1104/LEDs.h
@@ -1,18 +1,18 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
- www.fourwalledcubicle.com
+ www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
- Permission to use, copy, modify, and distribute this software
- and its documentation for any purpose and without fee is hereby
- granted, provided that the above copyright notice appear in all
- copies and that both that the copyright notice and this
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in
+ all copies and that both that the copyright notice and this
permission notice and warranty disclaimer appear in supporting
documentation, and that the name of the author not be used in
advertising or publicity pertaining to distribution of the
@@ -101,6 +101,17 @@
AVR32_GPIO.port[3].ovrs = LEDS_LEDMASK3;
}
+ static inline void LEDs_Disable(void)
+ {
+ AVR32_GPIO.port[2].gperc = LEDS_LEDMASK2;
+ AVR32_GPIO.port[2].oderc = LEDS_LEDMASK2;
+ AVR32_GPIO.port[2].ovrc = LEDS_LEDMASK2;
+
+ AVR32_GPIO.port[3].gperc = LEDS_LEDMASK3;
+ AVR32_GPIO.port[3].oderc = LEDS_LEDMASK3;
+ AVR32_GPIO.port[3].ovrc = LEDS_LEDMASK3;
+ }
+
static inline void LEDs_TurnOnLEDs(const uint32_t LEDMask)
{
AVR32_GPIO.port[2].ovrc = (LEDMask & LEDS_LEDMASK2);
diff --git a/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Buttons.h b/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Buttons.h
index 1665fa4b..d4e20840 100644
--- a/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Buttons.h
+++ b/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Buttons.h
@@ -1,18 +1,18 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
- www.fourwalledcubicle.com
+ www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
- Permission to use, copy, modify, and distribute this software
- and its documentation for any purpose and without fee is hereby
- granted, provided that the above copyright notice appear in all
- copies and that both that the copyright notice and this
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in
+ all copies and that both that the copyright notice and this
permission notice and warranty disclaimer appear in supporting
documentation, and that the name of the author not be used in
advertising or publicity pertaining to distribution of the
@@ -76,18 +76,28 @@
#if !defined(__DOXYGEN__)
static inline void Buttons_Init(void)
{
- PORTE_OUTCLR = BUTTONS_BUTTON1;
- PORTF_OUTCLR = (BUTTONS_BUTTON2 | BUTTONS_BUTTON3);
+ PORTE.OUTCLR = BUTTONS_BUTTON1;
+ PORTE.PIN5CTRL = (PORT_OPC_PULLUP_gc | PORT_INVEN_bm);
- PORTE_PIN5CTRL = PORT_OPC_PULLUP_gc;
- PORTF_PIN1CTRL = PORT_OPC_PULLUP_gc;
- PORTF_PIN2CTRL = PORT_OPC_PULLUP_gc;
+ PORTF.OUTCLR = (BUTTONS_BUTTON2 | BUTTONS_BUTTON3);
+ PORTF.PIN1CTRL = (PORT_OPC_PULLUP_gc | PORT_INVEN_bm);
+ PORTF.PIN2CTRL = (PORT_OPC_PULLUP_gc | PORT_INVEN_bm);
+ }
+
+ static inline void Buttons_Disable(void)
+ {
+ PORTE.OUTCLR = BUTTONS_BUTTON1;
+ PORTE.PIN5CTRL = 0;
+
+ PORTF.OUTCLR = (BUTTONS_BUTTON2 | BUTTONS_BUTTON3);
+ PORTF.PIN1CTRL = 0;
+ PORTF.PIN2CTRL = 0;
}
static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
static inline uint8_t Buttons_GetStatus(void)
{
- return ((~PORTE_IN & BUTTONS_BUTTON1) | (~PORTF_IN & (BUTTONS_BUTTON2 | BUTTONS_BUTTON3)));
+ return ((PORTE_IN & BUTTONS_BUTTON1) | (PORTF_IN & (BUTTONS_BUTTON2 | BUTTONS_BUTTON3)));
}
#endif
diff --git a/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Dataflash.h b/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Dataflash.h
index 7f657467..abc8d85d 100644
--- a/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Dataflash.h
+++ b/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/Dataflash.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -29,28 +29,29 @@
*/
/** \file
- * \brief Board specific Dataflash driver header for the Atmel XMEGA A3BU Xplained.
- * \copydetails Group_Dataflash_A3BU_XPLAINED
+ * \brief Board specific Dataflash driver header for the Atmel XMEGA B1 Xplained.
+ * \copydetails Group_Dataflash_B1_XPLAINED
*
* \note This file should not be included directly. It is automatically included as needed by the dataflash driver
* dispatch header located in LUFA/Drivers/Board/Dataflash.h.
*/
/** \ingroup Group_Dataflash
- * \defgroup Group_Dataflash_A3BU_XPLAINED A3BU_XPLAINED
- * \brief Board specific Dataflash driver header for the Atmel XMEGA A3BU Xplained.
+ * \defgroup Group_Dataflash_B1_XPLAINED B1_XPLAINED
+ * \brief Board specific Dataflash driver header for the Atmel XMEGA B1 Xplained.
*
- * Board specific Dataflash driver header for the Atmel XMEGA A3BU Xplained board.
+ * Board specific Dataflash driver header for the Atmel XMEGA B1 Xplained board.
*
* @{
*/
-#ifndef __DATAFLASH_A3BU_XPLAINED_H__
-#define __DATAFLASH_A3BU_XPLAINED_H__
+#ifndef __DATAFLASH_B1_XPLAINED_H__
+#define __DATAFLASH_B1_XPLAINED_H__
/* Includes: */
#include "../../../../Common/Common.h"
#include "../../../Misc/AT45DB642D.h"
+ #include "../../../Peripheral/SerialSPI.h"
/* Preprocessor Checks: */
#if !defined(__INCLUDE_FROM_DATAFLASH_H)
@@ -93,25 +94,24 @@
/** Sends a byte to the currently selected dataflash IC, and returns a byte from the dataflash.
*
- * \param[in] Byte of data to send to the dataflash
+ * \param[in] Byte Byte of data to send to the dataflash
*
* \return Last response byte from the dataflash
*/
static inline uint8_t Dataflash_TransferByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
static inline uint8_t Dataflash_TransferByte(const uint8_t Byte)
{
- // TODO
- return 0;
+ return SerialSPI_TransferByte(&USARTD0, Byte);
}
/** Sends a byte to the currently selected dataflash IC, and ignores the next byte from the dataflash.
*
- * \param[in] Byte of data to send to the dataflash
+ * \param[in] Byte Byte of data to send to the dataflash
*/
static inline void Dataflash_SendByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
static inline void Dataflash_SendByte(const uint8_t Byte)
{
- // TODO
+ SerialSPI_SendByte(&USARTD0, Byte);
}
/** Sends a dummy byte to the currently selected dataflash IC, and returns the next byte from the dataflash.
@@ -121,8 +121,7 @@
static inline uint8_t Dataflash_ReceiveByte(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;
static inline uint8_t Dataflash_ReceiveByte(void)
{
- // TODO
- return 0;
+ return SerialSPI_ReceiveByte(&USARTD0);
}
/** Determines the currently selected dataflash chip.
@@ -170,10 +169,7 @@
if (PageAddress >= (DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS))
return;
- if (PageAddress & 0x01)
- Dataflash_SelectChip(DATAFLASH_CHIP2);
- else
- Dataflash_SelectChip(DATAFLASH_CHIP1);
+ Dataflash_SelectChip(DATAFLASH_CHIP1);
}
/** Toggles the select line of the currently selected dataflash IC, so that it is ready to receive
@@ -207,8 +203,6 @@
static inline void Dataflash_SendAddressBytes(uint16_t PageAddress,
const uint16_t BufferByte)
{
- PageAddress >>= 1;
-
Dataflash_SendByte(PageAddress >> 5);
Dataflash_SendByte((PageAddress << 3) | (BufferByte >> 8));
Dataflash_SendByte(BufferByte);
diff --git a/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/LEDs.h b/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/LEDs.h
index d555ac21..6212c9ae 100644
--- a/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/LEDs.h
+++ b/LUFA/Drivers/Board/XMEGA/A3BU_XPLAINED/LEDs.h
@@ -1,18 +1,18 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
- www.fourwalledcubicle.com
+ www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
- Permission to use, copy, modify, and distribute this software
- and its documentation for any purpose and without fee is hereby
- granted, provided that the above copyright notice appear in all
- copies and that both that the copyright notice and this
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in
+ all copies and that both that the copyright notice and this
permission notice and warranty disclaimer appear in supporting
documentation, and that the name of the author not be used in
advertising or publicity pertaining to distribution of the
@@ -79,18 +79,30 @@
#if !defined(__DOXYGEN__)
static inline void LEDs_Init(void)
{
- PORTR_DIRSET = LEDS_ALL_LEDS;
- PORTR_OUTSET = LEDS_ALL_LEDS;
+ PORTR.DIRSET = LEDS_ALL_LEDS;
+ PORTR.OUTCLR = LEDS_ALL_LEDS;
+
+ PORTCFG.MPCMASK = LEDS_ALL_LEDS;
+ PORTR.PIN0CTRL = PORT_INVEN_bm;
+ }
+
+ static inline void LEDs_Disable(void)
+ {
+ PORTR.DIRCLR = LEDS_ALL_LEDS;
+ PORTR.OUTCLR = LEDS_ALL_LEDS;
+
+ PORTCFG.MPCMASK = 0;
+ PORTR.PIN0CTRL = LEDS_ALL_LEDS;
}
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
{
- PORTR_OUTCLR = LEDMask;
+ PORTR_OUTSET = LEDMask;
}
static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)
{
- PORTR_OUTSET = LEDMask;
+ PORTR_OUTCLR = LEDMask;
}
static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)
diff --git a/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Buttons.h b/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Buttons.h
new file mode 100644
index 00000000..2a08ed56
--- /dev/null
+++ b/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Buttons.h
@@ -0,0 +1,111 @@
+/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2012.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+*/
+
+/*
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in
+ all copies and that both that the copyright notice and this
+ permission notice and warranty disclaimer appear in supporting
+ documentation, and that the name of the author not be used in
+ advertising or publicity pertaining to distribution of the
+ software without specific, written prior permission.
+
+ The author disclaim all warranties with regard to this
+ software, including all implied warranties of merchantability
+ and fitness. In no event shall the author be liable for any
+ special, indirect or consequential damages or any damages
+ whatsoever resulting from loss of use, data or profits, whether
+ in an action of contract, negligence or other tortious action,
+ arising out of or in connection with the use or performance of
+ this software.
+*/
+
+/** \file
+ * \brief Board specific Buttons driver header for the Atmel XMEGA B1 Xplained.
+ * \copydetails Group_Buttons_B1_XPLAINED
+ *
+ * \note This file should not be included directly. It is automatically included as needed by the Buttons driver
+ * dispatch header located in LUFA/Drivers/Board/Buttons.h.
+ */
+
+/** \ingroup Group_Buttons
+ * \defgroup Group_Buttons_B1_XPLAINED B1_XPLAINED
+ * \brief Board specific Buttons driver header for the Atmel XMEGA B1 Xplained.
+ *
+ * Board specific Buttons driver header for the Atmel XMEGA B1 Xplained.
+ *
+ * @{
+ */
+
+#ifndef __BUTTONS_B1_XPLAINED_H__
+#define __BUTTONS_B1_XPLAINED_H__
+
+ /* Includes: */
+ #include <avr/io.h>
+
+ /* Enable C linkage for C++ Compilers: */
+ #if defined(__cplusplus)
+ extern "C" {
+ #endif
+
+ /* Preprocessor Checks: */
+ #if !defined(__INCLUDE_FROM_BUTTONS_H)
+ #error Do not include this file directly. Include LUFA/Drivers/Board/Buttons.h instead.
+ #endif
+
+ /* Public Interface - May be used in end-application: */
+ /* Macros: */
+ /** Button mask for the first button on the board. */
+ #define BUTTONS_BUTTON1 (1 << 0)
+
+ /** Button mask for the second button on the board. */
+ #define BUTTONS_BUTTON2 (1 << 1)
+
+ /** Button mask for the third button on the board. */
+ #define BUTTONS_BUTTON3 (1 << 2)
+
+ /** Button mask for the fourth button on the board. */
+ #define BUTTONS_BUTTON4 (1 << 3)
+
+ /* Inline Functions: */
+ #if !defined(__DOXYGEN__)
+ static inline void Buttons_Init(void)
+ {
+ PORTE.OUTSET = (BUTTONS_BUTTON1 | BUTTONS_BUTTON2 | BUTTONS_BUTTON3 | BUTTONS_BUTTON4);
+
+ PORTCFG.MPCMASK = (BUTTONS_BUTTON1 | BUTTONS_BUTTON2 | BUTTONS_BUTTON3 | BUTTONS_BUTTON4);
+ PORTE.PIN0CTRL = (PORT_INVEN_bm | PORT_OPC_PULLUP_gc);
+ }
+
+ static inline void Buttons_Disable(void)
+ {
+ PORTE.OUTCLR = (BUTTONS_BUTTON1 | BUTTONS_BUTTON2 | BUTTONS_BUTTON3 | BUTTONS_BUTTON4);
+
+ PORTCFG.MPCMASK = (BUTTONS_BUTTON1 | BUTTONS_BUTTON2 | BUTTONS_BUTTON3 | BUTTONS_BUTTON4);
+ PORTE.PIN0CTRL = 0;
+ }
+
+ static inline uint8_t Buttons_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
+ static inline uint8_t Buttons_GetStatus(void)
+ {
+ return (PORTE_IN & (BUTTONS_BUTTON1 | BUTTONS_BUTTON2 | BUTTONS_BUTTON3 | BUTTONS_BUTTON4));
+ }
+ #endif
+
+ /* Disable C linkage for C++ Compilers: */
+ #if defined(__cplusplus)
+ }
+ #endif
+
+#endif
+
+/** @} */
+
diff --git a/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Dataflash.h b/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Dataflash.h
new file mode 100644
index 00000000..f1e6da5f
--- /dev/null
+++ b/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Dataflash.h
@@ -0,0 +1,216 @@
+/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2012.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+*/
+
+/*
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in
+ all copies and that both that the copyright notice and this
+ permission notice and warranty disclaimer appear in supporting
+ documentation, and that the name of the author not be used in
+ advertising or publicity pertaining to distribution of the
+ software without specific, written prior permission.
+
+ The author disclaim all warranties with regard to this
+ software, including all implied warranties of merchantability
+ and fitness. In no event shall the author be liable for any
+ special, indirect or consequential damages or any damages
+ whatsoever resulting from loss of use, data or profits, whether
+ in an action of contract, negligence or other tortious action,
+ arising out of or in connection with the use or performance of
+ this software.
+*/
+
+/** \file
+ * \brief Board specific Dataflash driver header for the Atmel XMEGA A3BU Xplained.
+ * \copydetails Group_Dataflash_A3BU_XPLAINED
+ *
+ * \note This file should not be included directly. It is automatically included as needed by the dataflash driver
+ * dispatch header located in LUFA/Drivers/Board/Dataflash.h.
+ */
+
+/** \ingroup Group_Dataflash
+ * \defgroup Group_Dataflash_A3BU_XPLAINED A3BU_XPLAINED
+ * \brief Board specific Dataflash driver header for the Atmel XMEGA A3BU Xplained.
+ *
+ * Board specific Dataflash driver header for the Atmel XMEGA A3BU Xplained board.
+ *
+ * @{
+ */
+
+#ifndef __DATAFLASH_A3BU_XPLAINED_H__
+#define __DATAFLASH_A3BU_XPLAINED_H__
+
+ /* Includes: */
+ #include "../../../../Common/Common.h"
+ #include "../../../Misc/AT45DB642D.h"
+ #include "../../../Peripheral/SerialSPI.h"
+
+ /* Preprocessor Checks: */
+ #if !defined(__INCLUDE_FROM_DATAFLASH_H)
+ #error Do not include this file directly. Include LUFA/Drivers/Board/Dataflash.h instead.
+ #endif
+
+ /* Private Interface - For use in library only: */
+ #if !defined(__DOXYGEN__)
+ /* Macros: */
+ #define DATAFLASH_CHIPCS_MASK (1 << 2)
+ #define DATAFLASH_CHIPCS_PORT PORTD
+ #endif
+
+ /* Public Interface - May be used in end-application: */
+ /* Macros: */
+ /** Constant indicating the total number of dataflash ICs mounted on the selected board. */
+ #define DATAFLASH_TOTALCHIPS 1
+
+ /** Mask for no dataflash chip selected. */
+ #define DATAFLASH_NO_CHIP DATAFLASH_CHIPCS_MASK
+
+ /** Mask for the first dataflash chip selected. */
+ #define DATAFLASH_CHIP1 0
+
+ /** Internal main memory page size for the board's dataflash ICs. */
+ #define DATAFLASH_PAGE_SIZE 1024
+
+ /** Total number of pages inside each of the board's dataflash ICs. */
+ #define DATAFLASH_PAGES 8192
+
+ /* Inline Functions: */
+ /** Initializes the dataflash driver so that commands and data may be sent to an attached dataflash IC.
+ * The microcontroller's SPI driver MUST be initialized before any of the dataflash commands are used.
+ */
+ static inline void Dataflash_Init(void)
+ {
+ DATAFLASH_CHIPCS_PORT.DIRSET = DATAFLASH_CHIPCS_MASK;
+ DATAFLASH_CHIPCS_PORT.OUTSET = DATAFLASH_CHIPCS_MASK;
+
+ PORTE.REMAP |= PORT_USART0_bm;
+ }
+
+ /** Sends a byte to the currently selected dataflash IC, and returns a byte from the dataflash.
+ *
+ * \param[in] Byte Byte of data to send to the dataflash
+ *
+ * \return Last response byte from the dataflash
+ */
+ static inline uint8_t Dataflash_TransferByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
+ static inline uint8_t Dataflash_TransferByte(const uint8_t Byte)
+ {
+ return SerialSPI_TransferByte(&USARTE0, Byte);
+ }
+
+ /** Sends a byte to the currently selected dataflash IC, and ignores the next byte from the dataflash.
+ *
+ * \param[in] Byte Byte of data to send to the dataflash
+ */
+ static inline void Dataflash_SendByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
+ static inline void Dataflash_SendByte(const uint8_t Byte)
+ {
+ SerialSPI_SendByte(&USARTE0, Byte);
+ }
+
+ /** Sends a dummy byte to the currently selected dataflash IC, and returns the next byte from the dataflash.
+ *
+ * \return Last response byte from the dataflash
+ */
+ static inline uint8_t Dataflash_ReceiveByte(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;
+ static inline uint8_t Dataflash_ReceiveByte(void)
+ {
+ return SerialSPI_ReceiveByte(&USARTE0);
+ }
+
+ /** Determines the currently selected dataflash chip.
+ *
+ * \return Mask of the currently selected Dataflash chip, either \ref DATAFLASH_NO_CHIP if no chip is selected
+ * or a DATAFLASH_CHIPn mask (where n is the chip number).
+ */
+ static inline uint8_t Dataflash_GetSelectedChip(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;
+ static inline uint8_t Dataflash_GetSelectedChip(void)
+ {
+ return (DATAFLASH_CHIPCS_PORT.OUT & DATAFLASH_CHIPCS_MASK);
+ }
+
+ /** Selects the given dataflash chip.
+ *
+ * \param[in] ChipMask Mask of the Dataflash IC to select, in the form of DATAFLASH_CHIPn mask (where n is
+ * the chip number).
+ */
+ static inline void Dataflash_SelectChip(const uint8_t ChipMask) ATTR_ALWAYS_INLINE;
+ static inline void Dataflash_SelectChip(const uint8_t ChipMask)
+ {
+ DATAFLASH_CHIPCS_PORT.OUT = ((DATAFLASH_CHIPCS_PORT.OUT & ~DATAFLASH_CHIPCS_MASK) | ChipMask);
+ }
+
+ /** Deselects the current dataflash chip, so that no dataflash is selected. */
+ static inline void Dataflash_DeselectChip(void) ATTR_ALWAYS_INLINE;
+ static inline void Dataflash_DeselectChip(void)
+ {
+ Dataflash_SelectChip(DATAFLASH_NO_CHIP);
+ }
+
+ /** Selects a dataflash IC from the given page number, which should range from 0 to
+ * ((DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS) - 1). For boards containing only one
+ * dataflash IC, this will select DATAFLASH_CHIP1. If the given page number is outside
+ * the total number of pages contained in the boards dataflash ICs, all dataflash ICs
+ * are deselected.
+ *
+ * \param[in] PageAddress Address of the page to manipulate, ranging from
+ * 0 to ((DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS) - 1).
+ */
+ static inline void Dataflash_SelectChipFromPage(const uint16_t PageAddress)
+ {
+ Dataflash_DeselectChip();
+
+ if (PageAddress >= (DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS))
+ return;
+
+ Dataflash_SelectChip(DATAFLASH_CHIP1);
+ }
+
+ /** Toggles the select line of the currently selected dataflash IC, so that it is ready to receive
+ * a new command.
+ */
+ static inline void Dataflash_ToggleSelectedChipCS(void)
+ {
+ uint8_t SelectedChipMask = Dataflash_GetSelectedChip();
+
+ Dataflash_DeselectChip();
+ Dataflash_SelectChip(SelectedChipMask);
+ }
+
+ /** Spin-loops while the currently selected dataflash is busy executing a command, such as a main
+ * memory page program or main memory to buffer transfer.
+ */
+ static inline void Dataflash_WaitWhileBusy(void)
+ {
+ Dataflash_ToggleSelectedChipCS();
+ Dataflash_SendByte(DF_CMD_GETSTATUS);
+ while (!(Dataflash_ReceiveByte() & DF_STATUS_READY));
+ Dataflash_ToggleSelectedChipCS();
+ }
+
+ /** Sends a set of page and buffer address bytes to the currently selected dataflash IC, for use with
+ * dataflash commands which require a complete 24-bit address.
+ *
+ * \param[in] PageAddress Page address within the selected dataflash IC
+ * \param[in] BufferByte Address within the dataflash's buffer
+ */
+ static inline void Dataflash_SendAddressBytes(uint16_t PageAddress,
+ const uint16_t BufferByte)
+ {
+ Dataflash_SendByte(PageAddress >> 5);
+ Dataflash_SendByte((PageAddress << 3) | (BufferByte >> 8));
+ Dataflash_SendByte(BufferByte);
+ }
+
+#endif
+
+/** @} */
+
diff --git a/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/LEDs.h b/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/LEDs.h
new file mode 100644
index 00000000..18497872
--- /dev/null
+++ b/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/LEDs.h
@@ -0,0 +1,173 @@
+/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2012.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+*/
+
+/*
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in
+ all copies and that both that the copyright notice and this
+ permission notice and warranty disclaimer appear in supporting
+ documentation, and that the name of the author not be used in
+ advertising or publicity pertaining to distribution of the
+ software without specific, written prior permission.
+
+ The author disclaim all warranties with regard to this
+ software, including all implied warranties of merchantability
+ and fitness. In no event shall the author be liable for any
+ special, indirect or consequential damages or any damages
+ whatsoever resulting from loss of use, data or profits, whether
+ in an action of contract, negligence or other tortious action,
+ arising out of or in connection with the use or performance of
+ this software.
+*/
+
+/** \file
+ * \brief Board specific LED driver header for the Atmel XMEGA B1 Xplained.
+ * \copydetails Group_LEDs_B1_XPLAINED
+ *
+ * \note This file should not be included directly. It is automatically included as needed by the LEDs driver
+ * dispatch header located in LUFA/Drivers/Board/LEDs.h.
+ */
+
+/** \ingroup Group_LEDs
+ * \defgroup Group_LEDs_B1_XPLAINED B1_XPLAINED
+ * \brief Board specific LED driver header for the Atmel XMEGA B1 Xplained.
+ *
+ * Board specific LED driver header for the Atmel XMEGA B1 Xplained.
+ *
+ * @{
+ */
+
+#ifndef __LEDS_B1_XPLAINED_H__
+#define __LEDS_B1_XPLAINED_H__
+
+ /* Includes: */
+ #include <avr/io.h>
+
+ /* Enable C linkage for C++ Compilers: */
+ #if defined(__cplusplus)
+ extern "C" {
+ #endif
+
+ /* Preprocessor Checks: */
+ #if !defined(__INCLUDE_FROM_LEDS_H)
+ #error Do not include this file directly. Include LUFA/Drivers/Board/LEDS.h instead.
+ #endif
+
+ /* Private Interface - For use in library only: */
+ #if !defined(__DOXYGEN__)
+ /* Macros: */
+ #define LEDS_PORTB_LEDS (LEDS_LED1 | LEDS_LED2 | LEDS_LED3 | LEDS_LED4)
+ #define LEDS_PORTE_LEDS LEDS_LED5
+
+ #define LEDS_PORTE_MASK_SHIFT 1
+ #endif
+
+ /* Public Interface - May be used in end-application: */
+ /* Macros: */
+ /** LED mask for the first LED on the board. */
+ #define LEDS_LED1 (1 << 4)
+
+ /** LED mask for the second LED on the board. */
+ #define LEDS_LED2 (1 << 5)
+
+ /** LED mask for the third LED on the board. */
+ #define LEDS_LED3 (1 << 6)
+
+ /** LED mask for the fourth LED on the board. */
+ #define LEDS_LED4 (1 << 7)
+
+ /** LED mask for the fifth LED on the board. */
+ #define LEDS_LED5 ((1 << 4) >> LEDS_PORTE_MASK_SHIFT)
+
+ /** LED mask for all the LEDs on the board. */
+ #define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2 | LEDS_LED3 | LEDS_LED4 | LEDS_LED5)
+
+ /** LED mask for none of the board LEDs. */
+ #define LEDS_NO_LEDS 0
+
+ /* Inline Functions: */
+ #if !defined(__DOXYGEN__)
+ static inline void LEDs_Init(void)
+ {
+ PORTB.DIRSET = LEDS_PORTB_LEDS;
+ PORTB.OUTCLR = LEDS_PORTB_LEDS;
+
+ PORTCFG.MPCMASK = LEDS_PORTB_LEDS;
+ PORTB.PIN0CTRL = PORT_INVEN_bm;
+
+ PORTE.DIRSET = (LEDS_PORTE_LEDS << LEDS_PORTE_MASK_SHIFT);
+ PORTE.OUTCLR = (LEDS_PORTE_LEDS << LEDS_PORTE_MASK_SHIFT);
+ }
+
+ static inline void LEDs_Disable(void)
+ {
+ PORTB.DIRCLR = LEDS_PORTB_LEDS;
+ PORTB.OUTCLR = LEDS_PORTB_LEDS;
+
+ PORTCFG.MPCMASK = 0;
+ PORTB.PIN0CTRL = LEDS_PORTB_LEDS;
+
+ PORTE.DIRCLR = (LEDS_PORTE_LEDS << LEDS_PORTE_MASK_SHIFT);
+ PORTE.OUTCLR = (LEDS_PORTE_LEDS << LEDS_PORTE_MASK_SHIFT);
+ }
+
+ static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask)
+ {
+ PORTB_OUTSET = (LEDMask & LEDS_PORTB_LEDS);
+ PORTE_OUTSET = ((LEDMask & LEDS_PORTE_LEDS) << LEDS_PORTE_MASK_SHIFT);
+ }
+
+ static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask)
+ {
+ PORTB_OUTCLR = (LEDMask & LEDS_PORTB_LEDS);
+ PORTE_OUTCLR = ((LEDMask & LEDS_PORTE_LEDS) << LEDS_PORTE_MASK_SHIFT);
+ }
+
+ static inline void LEDs_SetAllLEDs(const uint8_t LEDMask)
+ {
+ PORTB_OUTCLR = LEDS_PORTB_LEDS;
+ PORTE_OUTCLR = (LEDS_PORTE_LEDS << LEDS_PORTE_MASK_SHIFT);
+
+ PORTB_OUTSET = (LEDMask & LEDS_PORTB_LEDS);
+ PORTE_OUTSET = ((LEDMask & LEDS_PORTE_LEDS) << LEDS_PORTE_MASK_SHIFT);
+ }
+
+ static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask)
+ {
+ PORTB_OUTCLR = (LEDMask & LEDS_PORTB_LEDS);
+ PORTE_OUTCLR = ((LEDMask & LEDS_PORTE_LEDS) << LEDS_PORTE_MASK_SHIFT);
+
+ PORTB_OUTSET = (ActiveMask & LEDS_PORTB_LEDS);
+ PORTE_OUTSET = ((ActiveMask & LEDS_PORTE_LEDS) << LEDS_PORTE_MASK_SHIFT);
+ }
+
+ static inline void LEDs_ToggleLEDs(const uint8_t LEDMask)
+ {
+ PORTB_OUTTGL = (LEDMask & LEDS_PORTB_LEDS);
+ PORTE_OUTTGL = ((LEDMask & LEDS_PORTE_LEDS) << LEDS_PORTE_MASK_SHIFT);
+ }
+
+ static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT;
+ static inline uint8_t LEDs_GetLEDs(void)
+ {
+ return ((PORTB_OUT & LEDS_PORTB_LEDS) | (PORTE_OUT & (LEDS_PORTE_LEDS << LEDS_PORTE_MASK_SHIFT)));
+ }
+ #endif
+
+ /* Disable C linkage for C++ Compilers: */
+ #if defined(__cplusplus)
+ }
+ #endif
+
+#endif
+
+/** @} */
+
diff --git a/LUFA/Drivers/Misc/AT45DB321C.h b/LUFA/Drivers/Misc/AT45DB321C.h
index 47b8292a..1e2c909d 100644
--- a/LUFA/Drivers/Misc/AT45DB321C.h
+++ b/LUFA/Drivers/Misc/AT45DB321C.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/Misc/AT45DB642D.h b/LUFA/Drivers/Misc/AT45DB642D.h
index afd36f14..f43f249e 100644
--- a/LUFA/Drivers/Misc/AT45DB642D.h
+++ b/LUFA/Drivers/Misc/AT45DB642D.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/Misc/RingBuffer.h b/LUFA/Drivers/Misc/RingBuffer.h
index 4b98498e..8ed7a914 100644
--- a/LUFA/Drivers/Misc/RingBuffer.h
+++ b/LUFA/Drivers/Misc/RingBuffer.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/Misc/TerminalCodes.h b/LUFA/Drivers/Misc/TerminalCodes.h
index 01260183..5c26012e 100644
--- a/LUFA/Drivers/Misc/TerminalCodes.h
+++ b/LUFA/Drivers/Misc/TerminalCodes.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/Peripheral/ADC.h b/LUFA/Drivers/Peripheral/ADC.h
index a6e71d1a..2fb790cb 100644
--- a/LUFA/Drivers/Peripheral/ADC.h
+++ b/LUFA/Drivers/Peripheral/ADC.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/Peripheral/AVR8/ADC_AVR8.h b/LUFA/Drivers/Peripheral/AVR8/ADC_AVR8.h
index fe017305..b4b2b1f9 100644
--- a/LUFA/Drivers/Peripheral/AVR8/ADC_AVR8.h
+++ b/LUFA/Drivers/Peripheral/AVR8/ADC_AVR8.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/Peripheral/AVR8/SPI_AVR8.h b/LUFA/Drivers/Peripheral/AVR8/SPI_AVR8.h
index d6dc248f..2e396ed5 100644
--- a/LUFA/Drivers/Peripheral/AVR8/SPI_AVR8.h
+++ b/LUFA/Drivers/Peripheral/AVR8/SPI_AVR8.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -100,61 +100,61 @@
/* Macros: */
/** \name SPI Prescaler Configuration Masks */
//@{
- /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 2. */
+ /** SPI prescaler mask for \ref SPI_Init(). Divides the system clock by a factor of 2. */
#define SPI_SPEED_FCPU_DIV_2 SPI_USE_DOUBLESPEED
- /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 4. */
+ /** SPI prescaler mask for \ref SPI_Init(). Divides the system clock by a factor of 4. */
#define SPI_SPEED_FCPU_DIV_4 0
- /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 8. */
+ /** SPI prescaler mask for \ref SPI_Init(). Divides the system clock by a factor of 8. */
#define SPI_SPEED_FCPU_DIV_8 (SPI_USE_DOUBLESPEED | (1 << SPR0))
- /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 16. */
+ /** SPI prescaler mask for \ref SPI_Init(). Divides the system clock by a factor of 16. */
#define SPI_SPEED_FCPU_DIV_16 (1 << SPR0)
- /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 32. */
+ /** SPI prescaler mask for \ref SPI_Init(). Divides the system clock by a factor of 32. */
#define SPI_SPEED_FCPU_DIV_32 (SPI_USE_DOUBLESPEED | (1 << SPR1))
- /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 64. */
+ /** SPI prescaler mask for \ref SPI_Init(). Divides the system clock by a factor of 64. */
#define SPI_SPEED_FCPU_DIV_64 (SPI_USE_DOUBLESPEED | (1 << SPR1) | (1 << SPR0))
- /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 128. */
+ /** SPI prescaler mask for \ref SPI_Init(). Divides the system clock by a factor of 128. */
#define SPI_SPEED_FCPU_DIV_128 ((1 << SPR1) | (1 << SPR0))
//@}
/** \name SPI SCK Polarity Configuration Masks */
//@{
- /** SPI clock polarity mask for \c SPI_Init(). Indicates that the SCK should lead on the rising edge. */
+ /** SPI clock polarity mask for \ref SPI_Init(). Indicates that the SCK should lead on the rising edge. */
#define SPI_SCK_LEAD_RISING (0 << CPOL)
- /** SPI clock polarity mask for \c SPI_Init(). Indicates that the SCK should lead on the falling edge. */
+ /** SPI clock polarity mask for \ref SPI_Init(). Indicates that the SCK should lead on the falling edge. */
#define SPI_SCK_LEAD_FALLING (1 << CPOL)
//@}
/** \name SPI Sample Edge Configuration Masks */
//@{
- /** SPI data sample mode mask for \c SPI_Init(). Indicates that the data should sampled on the leading edge. */
+ /** SPI data sample mode mask for \ref SPI_Init(). Indicates that the data should sampled on the leading edge. */
#define SPI_SAMPLE_LEADING (0 << CPHA)
- /** SPI data sample mode mask for \c SPI_Init(). Indicates that the data should be sampled on the trailing edge. */
+ /** SPI data sample mode mask for \ref SPI_Init(). Indicates that the data should be sampled on the trailing edge. */
#define SPI_SAMPLE_TRAILING (1 << CPHA)
//@}
/** \name SPI Data Ordering Configuration Masks */
//@{
- /** SPI data order mask for \c SPI_Init(). Indicates that data should be shifted out MSB first. */
+ /** SPI data order mask for \ref SPI_Init(). Indicates that data should be shifted out MSB first. */
#define SPI_ORDER_MSB_FIRST (0 << DORD)
- /** SPI data order mask for \c SPI_Init(). Indicates that data should be shifted out LSB first. */
+ /** SPI data order mask for \ref SPI_Init(). Indicates that data should be shifted out LSB first. */
#define SPI_ORDER_LSB_FIRST (1 << DORD)
//@}
/** \name SPI Mode Configuration Masks */
//@{
- /** SPI mode mask for \c SPI_Init(). Indicates that the SPI interface should be initialized into slave mode. */
+ /** SPI mode mask for \ref SPI_Init(). Indicates that the SPI interface should be initialized into slave mode. */
#define SPI_MODE_SLAVE (0 << MSTR)
- /** SPI mode mask for \c SPI_Init(). Indicates that the SPI interface should be initialized into master mode. */
+ /** SPI mode mask for \ref SPI_Init(). Indicates that the SPI interface should be initialized into master mode. */
#define SPI_MODE_MASTER (1 << MSTR)
//@}
diff --git a/LUFA/Drivers/Peripheral/AVR8/SerialSPI_AVR8.h b/LUFA/Drivers/Peripheral/AVR8/SerialSPI_AVR8.h
new file mode 100644
index 00000000..0126630a
--- /dev/null
+++ b/LUFA/Drivers/Peripheral/AVR8/SerialSPI_AVR8.h
@@ -0,0 +1,205 @@
+/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2012.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+*/
+
+/*
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in
+ all copies and that both that the copyright notice and this
+ permission notice and warranty disclaimer appear in supporting
+ documentation, and that the name of the author not be used in
+ advertising or publicity pertaining to distribution of the
+ software without specific, written prior permission.
+
+ The author disclaim all warranties with regard to this
+ software, including all implied warranties of merchantability
+ and fitness. In no event shall the author be liable for any
+ special, indirect or consequential damages or any damages
+ whatsoever resulting from loss of use, data or profits, whether
+ in an action of contract, negligence or other tortious action,
+ arising out of or in connection with the use or performance of
+ this software.
+*/
+
+/** \file
+ * \brief Master SPI Mode Serial USART Peripheral Driver (XMEGA)
+ *
+ * On-chip Master SPI mode USART driver for the XMEGA AVR microcontrollers.
+ *
+ * \note This file should not be included directly. It is automatically included as needed by the SPI Master
+ * Mode USART driver dispatch header located in LUFA/Drivers/Peripheral/Serial.h.
+ */
+
+/** \ingroup Group_SerialSPI
+ * \defgroup Group_SerialSPI_AVR8 Master SPI Mode Serial USART Peripheral Driver (AVR8)
+ *
+ * \section Sec_ModDescription Module Description
+ * On-chip serial USART driver for the 8-bit AVR8 microcontrollers.
+ *
+ * \note This file should not be included directly. It is automatically included as needed by the SPI Master
+ * driver dispatch header located in LUFA/Drivers/Peripheral/SerialSPI.h.
+ *
+ * \section Sec_ExampleUsage Example Usage
+ * The following snippet is an example of how this module may be used within a typical
+ * application.
+ *
+ * \code
+ * // Initialize the Master SPI mode USART driver before first use, with 1Mbit baud
+ * SerialSPI_Init((USART_SPI_SCK_LEAD_RISING | SPI_SAMPLE_LEADING | SPI_ORDER_MSB_FIRST), 1000000);
+ *
+ * // Send several bytes, ignoring the returned data
+ * SerialSPI_SendByte(0x01);
+ * SerialSPI_SendByte(0x02);
+ * SerialSPI_SendByte(0x03);
+ *
+ * // Receive several bytes, sending a dummy 0x00 byte each time
+ * uint8_t Byte1 = SerialSPI_ReceiveByte();
+ * uint8_t Byte2 = SerialSPI_ReceiveByte();
+ * uint8_t Byte3 = SerialSPI_ReceiveByte();
+ *
+ * // Send a byte, and store the received byte from the same transaction
+ * uint8_t ResponseByte = SerialSPI_TransferByte(0xDC);
+ * \endcode
+ *
+ * @{
+ */
+
+#ifndef __SERIAL_SPI_AVR8_H__
+#define __SERIAL_SPI_AVR8_H__
+
+ /* Includes: */
+ #include "../../../Common/Common.h"
+
+ #include <stdio.h>
+
+ /* Enable C linkage for C++ Compilers: */
+ #if defined(__cplusplus)
+ extern "C" {
+ #endif
+
+ /* Preprocessor Checks: */
+ #if !defined(__INCLUDE_FROM_SERIAL_SPI_H)
+ #error Do not include this file directly. Include LUFA/Drivers/Peripheral/Serial.h instead.
+ #endif
+
+ /* Private Interface - For use in library only: */
+ #if !defined(__DOXYGEN__)
+ #define SERIAL_SPI_UBBRVAL(Baud) ((Baud < (F_CPU / 2)) ? ((F_CPU / (2 * Baud)) - 1) : 0)
+ #endif
+
+ /* Public Interface - May be used in end-application: */
+ /* Macros: */
+ /** \name SPI SCK Polarity Configuration Masks */
+ //@{
+ /** SPI clock polarity mask for \ref SPI_Init(). Indicates that the SCK should lead on the rising edge. */
+ #define USART_SPI_SCK_LEAD_RISING (0 << UCPOL)
+
+ /** SPI clock polarity mask for \ref SPI_Init(). Indicates that the SCK should lead on the falling edge. */
+ #define USART_SPI_SCK_LEAD_FALLING (1 << UCPOL)
+ //@}
+
+ /** \name SPI Sample Edge Configuration Masks */
+ //@{
+ /** SPI data sample mode mask for \ref SerialSPI_Init(). Indicates that the data should sampled on the leading edge. */
+ #define USART_SPI_SAMPLE_LEADING (0 << UPCHA)
+
+ /** SPI data sample mode mask for \ref SerialSPI_Init(). Indicates that the data should be sampled on the trailing edge. */
+ #define USART_SPI_SAMPLE_TRAILING (1 << UPCHA)
+ //@}
+
+ /** \name SPI Data Ordering Configuration Masks */
+ //@{
+ /** SPI data order mask for \ref SerialSPI_Init(). Indicates that data should be shifted out MSB first. */
+ #define USART_SPI_ORDER_MSB_FIRST (0 << UDORD)
+
+ /** SPI data order mask for \ref SerialSPI_Init(). Indicates that data should be shifted out LSB first. */
+ #define USART_SPI_ORDER_LSB_FIRST (1 << UDORD)
+ //@}
+
+ /* Inline Functions: */
+ /** Initialize the USART module in Master SPI mode.
+ *
+ * \param[in] SPIOptions USART SPI Options, a mask consisting of one of each of the \c USART_SPI_SCK_*,
+ * \c USART_SPI_SAMPLE_* and \c USART_SPI_ORDER_* masks.
+ * \param[in] BaudRate SPI baud rate, in bits per second.
+ */
+ static inline void SerialSPI_Init(const uint8_t SPIOptions,
+ const uint32_t BaudRate)
+ {
+ UBRR1 = SERIAL_SPI_UBBRVAL(BaudRate);
+
+ UCSR1C = ((1 << UMSEL11) | (1 << UMSEL10) | SPIOptions);
+ UCSR1B = ((1 << TXEN1) | (1 << RXEN1));
+
+ DDRD |= (1 << 3);
+ PORTD |= (1 << 2);
+ }
+
+ /** Turns off the USART driver, disabling and returning used hardware to their default configuration. */
+ static inline void SerialSPI_Disable(void)
+ {
+ UCSR1B = 0;
+ UCSR1A = 0;
+ UCSR1C = 0;
+
+ UBRR1 = 0;
+
+ DDRD &= ~(1 << 3);
+ PORTD &= ~(1 << 2);
+ }
+
+ /** Sends and receives a byte through the USART SPI interface, blocking until the transfer is complete.
+ *
+ * \param[in] DataByte Byte to send through the USART SPI interface.
+ *
+ * \return Response byte from the attached SPI device.
+ */
+ static inline uint8_t SerialSPI_TransferByte(const uint8_t DataByte)
+ {
+ UDR1 = DataByte;
+ while (!(UCSR1A & (1 << TXC1)));
+ UCSR1A = (1 << TXC1);
+ return UDR1;
+ }
+
+ /** Sends a byte through the USART SPI interface, blocking until the transfer is complete. The response
+ * byte sent to from the attached SPI device is ignored.
+ *
+ * \param[in] DataByte Byte to send through the USART SPI interface.
+ */
+ static inline void SerialSPI_SendByte(const uint8_t DataByte)
+ {
+ UDR1 = DataByte;
+ while (!(UCSR1A & (1 << TXC1)));
+ UCSR1A = (1 << TXC1);
+ }
+
+ /** Sends a dummy byte through the USART SPI interface, blocking until the transfer is complete. The response
+ * byte from the attached SPI device is returned.
+ *
+ * \return The response byte from the attached SPI device.
+ */
+ static inline uint8_t SerialSPI_ReceiveByte(void)
+ {
+ UDR1 = 0;
+ while (!(UCSR1A & (1 << TXC1)));
+ UCSR1A = (1 << TXC1);
+ return UDR1;
+ }
+
+ /* Disable C linkage for C++ Compilers: */
+ #if defined(__cplusplus)
+ }
+ #endif
+
+#endif
+
+/** @} */
+
diff --git a/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.c b/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.c
index 70f9f585..f391c06e 100644
--- a/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.c
+++ b/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -82,9 +82,33 @@ void Serial_SendString(const char* StringPtr)
}
}
-void Serial_SendData(const uint8_t* Buffer, uint16_t Length)
+void Serial_SendData(const uint8_t* Buffer,
+ uint16_t Length)
{
while (Length--)
Serial_SendByte(*(Buffer++));
}
+void Serial_CreateStream(FILE* Stream)
+{
+ if (!(Stream))
+ {
+ Stream = &USARTSerialStream;
+ stdin = Stream;
+ stdout = Stream;
+ }
+
+ *Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar, _FDEV_SETUP_RW);
+}
+
+void Serial_CreateBlockingStream(FILE* Stream)
+{
+ if (!(Stream))
+ {
+ Stream = &USARTSerialStream;
+ stdin = Stream;
+ stdout = Stream;
+ }
+
+ *Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar_Blocking, _FDEV_SETUP_RW);
+}
diff --git a/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.h b/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.h
index 55e18f9f..687ea74a 100644
--- a/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.h
+++ b/LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -43,7 +43,7 @@
* \section Sec_ModDescription Module Description
* On-chip serial USART driver for the 8-bit AVR microcontrollers.
*
- * \note This file should not be included directly. It is automatically included as needed by the ADC driver
+ * \note This file should not be included directly. It is automatically included as needed by the USART driver
* dispatch header located in LUFA/Drivers/Peripheral/Serial.h.
*
* \section Sec_ExampleUsage Example Usage
@@ -135,6 +135,32 @@
*/
void Serial_SendData(const uint8_t* Buffer, uint16_t Length) ATTR_NON_NULL_PTR_ARG(1);
+ /** Creates a standard character stream from the USART so that it can be used with all the regular functions
+ * in the avr-libc \c <stdio.h> library that accept a \c FILE stream as a destination (e.g. \c fprintf). The created
+ * stream is bidirectional and can be used for both input and output functions.
+ *
+ * Reading data from this stream is non-blocking, i.e. in most instances, complete strings cannot be read in by a single
+ * fetch, as the endpoint will not be ready at some point in the transmission, aborting the transfer. However, this may
+ * be used when the read data is processed byte-per-bye (via \c getc()) or when the user application will implement its own
+ * line buffering.
+ *
+ * \param[in,out] Stream Pointer to a FILE structure where the created stream should be placed, if \c NULL, \c stdout
+ * and \c stdin will be configured to use the USART.
+ *
+ * \pre The USART must first be configured via a call to \ref Serial_Init() before the stream is used.
+ */
+ void Serial_CreateStream(FILE* Stream);
+
+ /** Identical to \ref Serial_CreateStream(), except that reads are blocking until the calling stream function terminates
+ * the transfer.
+ *
+ * \param[in,out] Stream Pointer to a FILE structure where the created stream should be placed, if \c NULL, \c stdout
+ * and \c stdin will be configured to use the USART.
+ *
+ * \pre The USART must first be configured via a call to \ref Serial_Init() before the stream is used.
+ */
+ void Serial_CreateBlockingStream(FILE* Stream);
+
/* Inline Functions: */
/** Initializes the USART, ready for serial data transmission and reception. This initializes the interface to
* standard 8-bit, no parity, 1 stop bit settings suitable for most applications.
@@ -168,52 +194,6 @@
PORTD &= ~(1 << 2);
}
- /** Creates a standard character stream from the USART so that it can be used with all the regular functions
- * in the avr-libc \c <stdio.h> library that accept a \c FILE stream as a destination (e.g. \c fprintf). The created
- * stream is bidirectional and can be used for both input and output functions.
- *
- * Reading data from this stream is non-blocking, i.e. in most instances, complete strings cannot be read in by a single
- * fetch, as the endpoint will not be ready at some point in the transmission, aborting the transfer. However, this may
- * be used when the read data is processed byte-per-bye (via \c getc()) or when the user application will implement its own
- * line buffering.
- *
- * \param[in,out] Stream Pointer to a FILE structure where the created stream should be placed, if \c NULL, \c stdout
- * and \c stdin will be configured to use the USART.
- *
- * \pre The USART must first be configured via a call to \ref Serial_Init() before the stream is used.
- */
- static inline void Serial_CreateStream(FILE* Stream)
- {
- if (!(Stream))
- {
- Stream = &USARTSerialStream;
- stdin = Stream;
- stdout = Stream;
- }
-
- *Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar, _FDEV_SETUP_RW);
- }
-
- /** Identical to \ref Serial_CreateStream(), except that reads are blocking until the calling stream function terminates
- * the transfer.
- *
- * \param[in,out] Stream Pointer to a FILE structure where the created stream should be placed, if \c NULL, \c stdout
- * and \c stdin will be configured to use the USART.
- *
- * \pre The USART must first be configured via a call to \ref Serial_Init() before the stream is used.
- */
- static inline void Serial_CreateBlockingStream(FILE* Stream)
- {
- if (!(Stream))
- {
- Stream = &USARTSerialStream;
- stdin = Stream;
- stdout = Stream;
- }
-
- *Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar_Blocking, _FDEV_SETUP_RW);
- }
-
/** Indicates whether a character has been received through the USART.
*
* \return Boolean \c true if a character has been received, \c false otherwise.
diff --git a/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.c b/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.c
index b77aa082..34e64151 100644
--- a/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.c
+++ b/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.h b/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.h
index 75dffb58..17c1e5c2 100644
--- a/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.h
+++ b/LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -254,8 +254,6 @@
*/
bool TWI_ReceiveByte(uint8_t* const Byte,
const bool LastByte) ATTR_NON_NULL_PTR_ARG(1);
- bool TWI_ReceiveByte(uint8_t* const Byte,
- const bool LastByte);
/** High level function to perform a complete packet transfer over the TWI bus to the specified
* device.
diff --git a/LUFA/Drivers/Peripheral/SPI.h b/LUFA/Drivers/Peripheral/SPI.h
index 49a07b58..73019941 100644
--- a/LUFA/Drivers/Peripheral/SPI.h
+++ b/LUFA/Drivers/Peripheral/SPI.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/Peripheral/Serial.h b/LUFA/Drivers/Peripheral/Serial.h
index d216b756..e0a77474 100644
--- a/LUFA/Drivers/Peripheral/Serial.h
+++ b/LUFA/Drivers/Peripheral/Serial.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -66,6 +66,8 @@
/* Includes: */
#if (ARCH == ARCH_AVR8)
#include "AVR8/Serial_AVR8.h"
+ #elif (ARCH == ARCH_XMEGA)
+ #include "XMEGA/Serial_XMEGA.h"
#else
#error The Serial peripheral driver is not currently available for your selected architecture.
#endif
diff --git a/LUFA/Drivers/Peripheral/SerialSPI.h b/LUFA/Drivers/Peripheral/SerialSPI.h
new file mode 100644
index 00000000..ec552c1c
--- /dev/null
+++ b/LUFA/Drivers/Peripheral/SerialSPI.h
@@ -0,0 +1,76 @@
+/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2012.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+*/
+
+/*
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in
+ all copies and that both that the copyright notice and this
+ permission notice and warranty disclaimer appear in supporting
+ documentation, and that the name of the author not be used in
+ advertising or publicity pertaining to distribution of the
+ software without specific, written prior permission.
+
+ The author disclaim all warranties with regard to this
+ software, including all implied warranties of merchantability
+ and fitness. In no event shall the author be liable for any
+ special, indirect or consequential damages or any damages
+ whatsoever resulting from loss of use, data or profits, whether
+ in an action of contract, negligence or other tortious action,
+ arising out of or in connection with the use or performance of
+ this software.
+*/
+
+/** \file
+ * \brief Hardware SPI Master Mode Serial USART driver.
+ *
+ * This file is the master dispatch header file for the device-specific SPI Master Mode USART driver, for
+ * microcontrollers containing a hardware USART capable of operating in a Master SPI mode.
+ *
+ * User code should include this file, which will in turn include the correct ADC driver header file for the
+ * currently selected architecture and microcontroller model.
+ */
+
+/** \ingroup Group_PeripheralDrivers
+ * \defgroup Group_SerialSPI Master SPI Mode Serial USART Driver - LUFA/Drivers/Peripheral/SerialSPI.h
+ * \brief Hardware SPI Master Mode Serial USART driver.
+ *
+ * \section Sec_Dependencies Module Source Dependencies
+ * The following files must be built with any user project that uses this module:
+ * - None
+ *
+ * \section Sec_ModDescription Module Description
+ * Hardware SPI Master Mode serial USART driver. This module provides an easy to use driver for the setup and transfer
+ * of data over the selected architecture and microcontroller model's USART port, using a SPI framing format.
+ *
+ * \note The exact API for this driver may vary depending on the target used - see
+ * individual target module documentation for the API specific to your target processor.
+ */
+
+#ifndef __SERIAL_SPI_H__
+#define __SERIAL_SPI_H__
+
+ /* Macros: */
+ #define __INCLUDE_FROM_SERIAL_SPI_H
+
+ /* Includes: */
+ #include "../../Common/Common.h"
+
+ /* Includes: */
+ #if (ARCH == ARCH_AVR8)
+ #include "AVR8/SerialSPI_AVR8.h"
+ #elif (ARCH == ARCH_XMEGA)
+ #include "XMEGA/SerialSPI_XMEGA.h"
+ #else
+ #error The Serial SPI Master Mode peripheral driver is not currently available for your selected architecture.
+ #endif
+
+#endif
+
diff --git a/LUFA/Drivers/Peripheral/TWI.h b/LUFA/Drivers/Peripheral/TWI.h
index 8f99b3a9..587e3d80 100644
--- a/LUFA/Drivers/Peripheral/TWI.h
+++ b/LUFA/Drivers/Peripheral/TWI.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/Peripheral/XMEGA/SPI_XMEGA.h b/LUFA/Drivers/Peripheral/XMEGA/SPI_XMEGA.h
index 0fe71429..a21ac1ca 100644
--- a/LUFA/Drivers/Peripheral/XMEGA/SPI_XMEGA.h
+++ b/LUFA/Drivers/Peripheral/XMEGA/SPI_XMEGA.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -97,61 +97,61 @@
/* Macros: */
/** \name SPI Prescaler Configuration Masks */
//@{
- /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 2. */
+ /** SPI prescaler mask for \ref SPI_Init(). Divides the system clock by a factor of 2. */
#define SPI_SPEED_FCPU_DIV_2 SPI_USE_DOUBLESPEED
- /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 4. */
+ /** SPI prescaler mask for \ref SPI_Init(). Divides the system clock by a factor of 4. */
#define SPI_SPEED_FCPU_DIV_4 0
- /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 8. */
+ /** SPI prescaler mask for \ref SPI_Init(). Divides the system clock by a factor of 8. */
#define SPI_SPEED_FCPU_DIV_8 (SPI_USE_DOUBLESPEED | (1 << SPI_PRESCALER_gp))
- /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 16. */
+ /** SPI prescaler mask for \ref SPI_Init(). Divides the system clock by a factor of 16. */
#define SPI_SPEED_FCPU_DIV_16 (1 << SPI_PRESCALER_gp)
- /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 32. */
+ /** SPI prescaler mask for \ref SPI_Init(). Divides the system clock by a factor of 32. */
#define SPI_SPEED_FCPU_DIV_32 (SPI_USE_DOUBLESPEED | (2 << SPI_PRESCALER_gp))
- /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 64. */
+ /** SPI prescaler mask for \ref SPI_Init(). Divides the system clock by a factor of 64. */
#define SPI_SPEED_FCPU_DIV_64 (2 << SPI_PRESCALER_gp)
- /** SPI prescaler mask for \c SPI_Init(). Divides the system clock by a factor of 128. */
+ /** SPI prescaler mask for \ref SPI_Init(). Divides the system clock by a factor of 128. */
#define SPI_SPEED_FCPU_DIV_128 (3 << SPI_PRESCALER_gp)
//@}
/** \name SPI SCK Polarity Configuration Masks */
//@{
- /** SPI clock polarity mask for \c SPI_Init(). Indicates that the SCK should lead on the rising edge. */
+ /** SPI clock polarity mask for \ref SPI_Init(). Indicates that the SCK should lead on the rising edge. */
#define SPI_SCK_LEAD_RISING 0
- /** SPI clock polarity mask for \c SPI_Init(). Indicates that the SCK should lead on the falling edge. */
+ /** SPI clock polarity mask for \ref SPI_Init(). Indicates that the SCK should lead on the falling edge. */
#define SPI_SCK_LEAD_FALLING SPI_MODE1_bm
//@}
/** \name SPI Sample Edge Configuration Masks */
//@{
- /** SPI data sample mode mask for \c SPI_Init(). Indicates that the data should sampled on the leading edge. */
+ /** SPI data sample mode mask for \ref SPI_Init(). Indicates that the data should sampled on the leading edge. */
#define SPI_SAMPLE_LEADING 0
- /** SPI data sample mode mask for \c SPI_Init(). Indicates that the data should be sampled on the trailing edge. */
+ /** SPI data sample mode mask for \ref SPI_Init(). Indicates that the data should be sampled on the trailing edge. */
#define SPI_SAMPLE_TRAILING SPI_MODE0_bm
//@}
/** \name SPI Data Ordering Configuration Masks */
//@{
- /** SPI data order mask for \c SPI_Init(). Indicates that data should be shifted out MSB first. */
+ /** SPI data order mask for \ref SPI_Init(). Indicates that data should be shifted out MSB first. */
#define SPI_ORDER_MSB_FIRST 0
- /** SPI data order mask for \c SPI_Init(). Indicates that data should be shifted out LSB first. */
+ /** SPI data order mask for \ref SPI_Init(). Indicates that data should be shifted out LSB first. */
#define SPI_ORDER_LSB_FIRST SPI_DORD_bm
//@}
/** \name SPI Mode Configuration Masks */
//@{
- /** SPI mode mask for \c SPI_Init(). Indicates that the SPI interface should be initialized into slave mode. */
+ /** SPI mode mask for \ref SPI_Init(). Indicates that the SPI interface should be initialized into slave mode. */
#define SPI_MODE_SLAVE 0
- /** SPI mode mask for \c SPI_Init(). Indicates that the SPI interface should be initialized into master mode. */
+ /** SPI mode mask for \ref SPI_Init(). Indicates that the SPI interface should be initialized into master mode. */
#define SPI_MODE_MASTER SPI_MASTER_bm
//@}
@@ -159,11 +159,11 @@
/** Initializes the SPI subsystem, ready for transfers. Must be called before calling any other
* SPI routines.
*
- * \param[in, out] SPI Pointer to the base of the SPI peripheral within the device.
- * \param[in] SPIOptions SPI Options, a mask consisting of one of each of the \c SPI_SPEED_*,
- * \c SPI_SCK_*, \c SPI_SAMPLE_*, \c SPI_ORDER_* and \c SPI_MODE_* masks.
+ * \param[in,out] SPI Pointer to the base of the SPI peripheral within the device.
+ * \param[in] SPIOptions SPI Options, a mask consisting of one of each of the \c SPI_SPEED_*,
+ * \c SPI_SCK_*, \c SPI_SAMPLE_*, \c SPI_ORDER_* and \c SPI_MODE_* masks.
*/
- static inline void SPI_Init(const SPI_t* SPI,
+ static inline void SPI_Init(SPI_t* const SPI,
const uint8_t SPIOptions)
{
SPI->CTRL = (SPIOptions | SPI_ENABLE_bm);
@@ -171,35 +171,35 @@
/** Turns off the SPI driver, disabling and returning used hardware to their default configuration.
*
- * \param[in, out] SPI Pointer to the base of the SPI peripheral within the device.
+ * \param[in,out] SPI Pointer to the base of the SPI peripheral within the device.
*/
- static inline void SPI_Disable(const SPI_t* SPI)
+ static inline void SPI_Disable(SPI_t* const SPI)
{
SPI->CTRL &= ~SPI_ENABLE_bm;
}
/** Retrieves the currently selected SPI mode, once the SPI interface has been configured.
*
- * \param[in, out] SPI Pointer to the base of the SPI peripheral within the device.
+ * \param[in,out] SPI Pointer to the base of the SPI peripheral within the device.
*
* \return \ref SPI_MODE_MASTER if the interface is currently in SPI Master mode, \ref SPI_MODE_SLAVE otherwise
*/
- static inline uint8_t SPI_GetCurrentMode(const SPI_t* SPI) ATTR_ALWAYS_INLINE;
- static inline uint8_t SPI_GetCurrentMode(const SPI_t* SPI)
+ static inline uint8_t SPI_GetCurrentMode(SPI_t* const SPI) ATTR_ALWAYS_INLINE;
+ static inline uint8_t SPI_GetCurrentMode(SPI_t* const SPI)
{
return (SPI->CTRL & SPI_MASTER_bm);
}
/** Sends and receives a byte through the SPI interface, blocking until the transfer is complete.
*
- * \param[in, out] SPI Pointer to the base of the SPI peripheral within the device.
- * \param[in] Byte Byte to send through the SPI interface.
+ * \param[in,out] SPI Pointer to the base of the SPI peripheral within the device.
+ * \param[in] Byte Byte to send through the SPI interface.
*
* \return Response byte from the attached SPI device.
*/
- static inline uint8_t SPI_TransferByte(const SPI_t* SPI,
+ static inline uint8_t SPI_TransferByte(SPI_t* const SPI,
const uint8_t Byte) ATTR_ALWAYS_INLINE;
- static inline uint8_t SPI_TransferByte(const SPI_t* SPI,
+ static inline uint8_t SPI_TransferByte(SPI_t* const SPI,
const uint8_t Byte)
{
SPI->DATA = Byte;
@@ -210,12 +210,12 @@
/** Sends a byte through the SPI interface, blocking until the transfer is complete. The response
* byte sent to from the attached SPI device is ignored.
*
- * \param[in, out] SPI Pointer to the base of the SPI peripheral within the device.
- * \param[in] Byte Byte to send through the SPI interface.
+ * \param[in,out] SPI Pointer to the base of the SPI peripheral within the device.
+ * \param[in] Byte Byte to send through the SPI interface.
*/
- static inline void SPI_SendByte(const SPI_t* SPI,
+ static inline void SPI_SendByte(SPI_t* const SPI,
const uint8_t Byte) ATTR_ALWAYS_INLINE;
- static inline void SPI_SendByte(const SPI_t* SPI,
+ static inline void SPI_SendByte(SPI_t* const SPI,
const uint8_t Byte)
{
SPI->DATA = Byte;
@@ -225,12 +225,12 @@
/** Sends a dummy byte through the SPI interface, blocking until the transfer is complete. The response
* byte from the attached SPI device is returned.
*
- * \param[in, out] SPI Pointer to the base of the SPI peripheral within the device.
+ * \param[in,out] SPI Pointer to the base of the SPI peripheral within the device.
*
* \return The response byte from the attached SPI device.
*/
- static inline uint8_t SPI_ReceiveByte(const SPI_t* SPI) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;
- static inline uint8_t SPI_ReceiveByte(const SPI_t* SPI)
+ static inline uint8_t SPI_ReceiveByte(SPI_t* const SPI) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;
+ static inline uint8_t SPI_ReceiveByte(SPI_t* const SPI)
{
SPI->DATA = 0;
while (!(SPI->STATUS & SPI_IF_bm));
diff --git a/LUFA/Drivers/Peripheral/XMEGA/SerialSPI_XMEGA.h b/LUFA/Drivers/Peripheral/XMEGA/SerialSPI_XMEGA.h
new file mode 100644
index 00000000..6f8251f6
--- /dev/null
+++ b/LUFA/Drivers/Peripheral/XMEGA/SerialSPI_XMEGA.h
@@ -0,0 +1,208 @@
+/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2012.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+*/
+
+/*
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in
+ all copies and that both that the copyright notice and this
+ permission notice and warranty disclaimer appear in supporting
+ documentation, and that the name of the author not be used in
+ advertising or publicity pertaining to distribution of the
+ software without specific, written prior permission.
+
+ The author disclaim all warranties with regard to this
+ software, including all implied warranties of merchantability
+ and fitness. In no event shall the author be liable for any
+ special, indirect or consequential damages or any damages
+ whatsoever resulting from loss of use, data or profits, whether
+ in an action of contract, negligence or other tortious action,
+ arising out of or in connection with the use or performance of
+ this software.
+*/
+
+/** \file
+ * \brief Master SPI Mode Serial USART Peripheral Driver (XMEGA)
+ *
+ * On-chip Master SPI mode USART driver for the XMEGA AVR microcontrollers.
+ *
+ * \note This file should not be included directly. It is automatically included as needed by the SPI Master
+ * Mode USART driver dispatch header located in LUFA/Drivers/Peripheral/Serial.h.
+ */
+
+/** \ingroup Group_SerialSPI
+ * \defgroup Group_SerialSPI_XMEGA Master SPI Mode Serial USART Peripheral Driver (XMEGA)
+ *
+ * \section Sec_ModDescription Module Description
+ * On-chip serial USART driver for the XMEGA AVR microcontrollers.
+ *
+ * \note This file should not be included directly. It is automatically included as needed by the ADC driver
+ * dispatch header located in LUFA/Drivers/Peripheral/SerialSPI.h.
+ *
+ * \section Sec_ExampleUsage Example Usage
+ * The following snippet is an example of how this module may be used within a typical
+ * application.
+ *
+ * \code
+ * // Initialize the Master SPI mode USART driver before first use, with 1Mbit baud
+ * SerialSPI_Init(&USARTD0, (USART_SPI_SCK_LEAD_RISING | SPI_SAMPLE_LEADING | SPI_ORDER_MSB_FIRST), 1000000);
+ *
+ * // Send several bytes, ignoring the returned data
+ * SerialSPI_SendByte(&USARTD0, 0x01);
+ * SerialSPI_SendByte(&USARTD0, 0x02);
+ * SerialSPI_SendByte(&USARTD0, 0x03);
+ *
+ * // Receive several bytes, sending a dummy 0x00 byte each time
+ * uint8_t Byte1 = SerialSPI_ReceiveByte(&USARTD);
+ * uint8_t Byte2 = SerialSPI_ReceiveByte(&USARTD);
+ * uint8_t Byte3 = SerialSPI_ReceiveByte(&USARTD);
+ *
+ * // Send a byte, and store the received byte from the same transaction
+ * uint8_t ResponseByte = SerialSPI_TransferByte(&USARTD0, 0xDC);
+ * \endcode
+ *
+ * @{
+ */
+
+#ifndef __SERIAL_SPI_XMEGA_H__
+#define __SERIAL_SPI_XMEGA_H__
+
+ /* Includes: */
+ #include "../../../Common/Common.h"
+
+ #include <stdio.h>
+
+ /* Enable C linkage for C++ Compilers: */
+ #if defined(__cplusplus)
+ extern "C" {
+ #endif
+
+ /* Preprocessor Checks: */
+ #if !defined(__INCLUDE_FROM_SERIAL_SPI_H)
+ #error Do not include this file directly. Include LUFA/Drivers/Peripheral/Serial.h instead.
+ #endif
+
+ /* Private Interface - For use in library only: */
+ #if !defined(__DOXYGEN__)
+ #define SERIAL_SPI_UBBRVAL(Baud) ((Baud < (F_CPU / 2)) ? ((F_CPU / (2 * Baud)) - 1) : 0)
+ #endif
+
+ /* Public Interface - May be used in end-application: */
+ /* Macros: */
+ /** \name SPI SCK Polarity Configuration Masks */
+ //@{
+ /** SPI clock polarity mask for \ref SerialSPI_Init(). Indicates that the SCK should lead on the rising edge. */
+ #define USART_SPI_SCK_LEAD_RISING 0
+ //@}
+
+ /** \name SPI Sample Edge Configuration Masks */
+ //@{
+ /** SPI data sample mode mask for \ref SerialSPI_Init(). Indicates that the data should sampled on the leading edge. */
+ #define USART_SPI_SAMPLE_LEADING 0
+
+ /** SPI data sample mode mask for \ref SerialSPI_Init(). Indicates that the data should be sampled on the trailing edge. */
+ #define USART_SPI_SAMPLE_TRAILING USART_UPCHA_bm
+ //@}
+
+ /** \name SPI Data Ordering Configuration Masks */
+ //@{
+ /** SPI data order mask for \ref SerialSPI_Init(). Indicates that data should be shifted out MSB first. */
+ #define USART_SPI_ORDER_MSB_FIRST 0
+
+ /** SPI data order mask for \ref SerialSPI_Init(). Indicates that data should be shifted out LSB first. */
+ #define USART_SPI_ORDER_LSB_FIRST USART_UDORD_bm
+ //@}
+
+ /* Inline Functions: */
+ /** Initialize the USART module in Master SPI mode.
+ *
+ * \param[in,out] USART Pointer to the base of the USART peripheral within the device.
+ * \param[in] SPIOptions USART SPI Options, a mask consisting of one of each of the \c USART_SPI_SCK_*,
+ * \c USART_SPI_SAMPLE_* and \c USART_SPI_ORDER_* masks.
+ * \param[in] BaudRate SPI baud rate, in bits per second.
+ */
+ static inline void SerialSPI_Init(USART_t* const USART,
+ const uint8_t SPIOptions,
+ const uint32_t BaudRate)
+ {
+ uint16_t BaudValue = SERIAL_SPI_UBBRVAL(BaudRate);
+
+ USART->BAUDCTRLB = (BaudValue >> 8);
+ USART->BAUDCTRLA = (BaudValue & 0xFF);
+
+ USART->CTRLC = (USART_CMODE_MSPI_gc | SPIOptions);
+ USART->CTRLB = (USART_RXEN_bm | USART_TXEN_bm);
+ }
+
+ /** Turns off the USART driver, disabling and returning used hardware to their default configuration.
+ *
+ * \param[in,out] USART Pointer to the base of the USART peripheral within the device.
+ */
+ static inline void SerialSPI_Disable(USART_t* const USART)
+ {
+ USART->CTRLA = 0;
+ USART->CTRLB = 0;
+ USART->CTRLC = 0;
+ }
+
+ /** Sends and receives a byte through the USART SPI interface, blocking until the transfer is complete.
+ *
+ * \param[in,out] USART Pointer to the base of the USART peripheral within the device.
+ * \param[in] DataByte Byte to send through the USART SPI interface.
+ *
+ * \return Response byte from the attached SPI device.
+ */
+ static inline uint8_t SerialSPI_TransferByte(USART_t* const USART,
+ const uint8_t DataByte)
+ {
+ USART->DATA = DataByte;
+ while (!(USART->STATUS & USART_TXCIF_bm));
+ USART->STATUS = USART_TXCIF_bm;
+ return USART->DATA;
+ }
+
+ /** Sends a byte through the USART SPI interface, blocking until the transfer is complete. The response
+ * byte sent to from the attached SPI device is ignored.
+ *
+ * \param[in,out] USART Pointer to the base of the USART peripheral within the device.
+ * \param[in] DataByte Byte to send through the USART SPI interface.
+ */
+ static inline void SerialSPI_SendByte(USART_t* const USART,
+ const uint8_t DataByte)
+ {
+ USART->DATA = DataByte;
+ while (!(USART->STATUS & USART_TXCIF_bm));
+ USART->STATUS = USART_TXCIF_bm;
+ }
+
+ /** Sends a dummy byte through the USART SPI interface, blocking until the transfer is complete. The response
+ * byte from the attached SPI device is returned.
+ *
+ * \param[in,out] USART Pointer to the base of the USART peripheral within the device.
+ *
+ * \return The response byte from the attached SPI device.
+ */
+ static inline uint8_t SerialSPI_ReceiveByte(USART_t* const USART)
+ {
+ USART->DATA = 0;
+ while (!(USART->STATUS & USART_TXCIF_bm));
+ USART->STATUS = USART_TXCIF_bm;
+ return USART->DATA;
+ }
+
+ /* Disable C linkage for C++ Compilers: */
+ #if defined(__cplusplus)
+ }
+ #endif
+
+#endif
+
+/** @} */
+
diff --git a/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.c b/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.c
new file mode 100644
index 00000000..accdc659
--- /dev/null
+++ b/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.c
@@ -0,0 +1,117 @@
+/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2012.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+*/
+
+/*
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in
+ all copies and that both that the copyright notice and this
+ permission notice and warranty disclaimer appear in supporting
+ documentation, and that the name of the author not be used in
+ advertising or publicity pertaining to distribution of the
+ software without specific, written prior permission.
+
+ The author disclaim all warranties with regard to this
+ software, including all implied warranties of merchantability
+ and fitness. In no event shall the author be liable for any
+ special, indirect or consequential damages or any damages
+ whatsoever resulting from loss of use, data or profits, whether
+ in an action of contract, negligence or other tortious action,
+ arising out of or in connection with the use or performance of
+ this software.
+*/
+
+#define __INCLUDE_FROM_SERIAL_C
+#include "../Serial.h"
+
+FILE USARTSerialStream;
+
+int Serial_putchar(char DataByte,
+ FILE *Stream)
+{
+ USART_t* USART = fdev_get_udata(Stream);
+
+ Serial_SendByte(USART, DataByte);
+ return 0;
+}
+
+int Serial_getchar(FILE *Stream)
+{
+ USART_t* USART = fdev_get_udata(Stream);
+
+ if (!(Serial_IsCharReceived(USART)))
+ return _FDEV_EOF;
+
+ return Serial_ReceiveByte(USART);
+}
+
+int Serial_getchar_Blocking(FILE *Stream)
+{
+ USART_t* USART = fdev_get_udata(Stream);
+
+ while (!(Serial_IsCharReceived(USART)));
+ return Serial_ReceiveByte(USART);
+}
+
+void Serial_SendString_P(USART_t* const USART,
+ const char* FlashStringPtr)
+{
+ uint8_t CurrByte;
+
+ while ((CurrByte = pgm_read_byte(FlashStringPtr)) != 0x00)
+ {
+ Serial_SendByte(USART, CurrByte);
+ FlashStringPtr++;
+ }
+}
+
+void Serial_SendString(USART_t* const USART,
+ const char* StringPtr)
+{
+ uint8_t CurrByte;
+
+ while ((CurrByte = *StringPtr) != 0x00)
+ {
+ Serial_SendByte(USART, CurrByte);
+ StringPtr++;
+ }
+}
+
+void Serial_SendData(USART_t* const USART,
+ const uint8_t* Buffer,
+ uint16_t Length)
+{
+ while (Length--)
+ Serial_SendByte(USART, *(Buffer++));
+}
+
+void Serial_CreateStream(FILE* Stream)
+{
+ if (!(Stream))
+ {
+ Stream = &USARTSerialStream;
+ stdin = Stream;
+ stdout = Stream;
+ }
+
+ *Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar, _FDEV_SETUP_RW);
+}
+
+void Serial_CreateBlockingStream(FILE* Stream)
+{
+ if (!(Stream))
+ {
+ Stream = &USARTSerialStream;
+ stdin = Stream;
+ stdout = Stream;
+ }
+
+ *Stream = (FILE)FDEV_SETUP_STREAM(Serial_putchar, Serial_getchar_Blocking, _FDEV_SETUP_RW);
+}
diff --git a/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.h b/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.h
new file mode 100644
index 00000000..283732f0
--- /dev/null
+++ b/LUFA/Drivers/Peripheral/XMEGA/Serial_XMEGA.h
@@ -0,0 +1,252 @@
+/*
+ LUFA Library
+ Copyright (C) Dean Camera, 2012.
+
+ dean [at] fourwalledcubicle [dot] com
+ www.lufa-lib.org
+*/
+
+/*
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in
+ all copies and that both that the copyright notice and this
+ permission notice and warranty disclaimer appear in supporting
+ documentation, and that the name of the author not be used in
+ advertising or publicity pertaining to distribution of the
+ software without specific, written prior permission.
+
+ The author disclaim all warranties with regard to this
+ software, including all implied warranties of merchantability
+ and fitness. In no event shall the author be liable for any
+ special, indirect or consequential damages or any damages
+ whatsoever resulting from loss of use, data or profits, whether
+ in an action of contract, negligence or other tortious action,
+ arising out of or in connection with the use or performance of
+ this software.
+*/
+
+/** \file
+ * \brief Serial USART Peripheral Driver (XMEGA)
+ *
+ * On-chip serial USART driver for the XMEGA AVR microcontrollers.
+ *
+ * \note This file should not be included directly. It is automatically included as needed by the USART driver
+ * dispatch header located in LUFA/Drivers/Peripheral/Serial.h.
+ */
+
+/** \ingroup Group_Serial
+ * \defgroup Group_Serial_XMEGA Serial USART Peripheral Driver (XMEGA)
+ *
+ * \section Sec_ModDescription Module Description
+ * On-chip serial USART driver for the XMEGA AVR microcontrollers.
+ *
+ * \note This file should not be included directly. It is automatically included as needed by the USART driver
+ * dispatch header located in LUFA/Drivers/Peripheral/Serial.h.
+ *
+ * \section Sec_ExampleUsage Example Usage
+ * The following snippet is an example of how this module may be used within a typical
+ * application.
+ *
+ * \code
+ * // Initialize the serial USART driver before first use, with 9600 baud (and no double-speed mode)
+ * Serial_Init(&USARTD0, 9600, false);
+ *
+ * // Send a string through the USART
+ * Serial_TxString(&USARTD0, "Test String\r\n");
+ *
+ * // Receive a byte through the USART
+ * uint8_t DataByte = Serial_RxByte(&USARTD0);
+ * \endcode
+ *
+ * @{
+ */
+
+#ifndef __SERIAL_XMEGA_H__
+#define __SERIAL_XMEGA_H__
+
+ /* Includes: */
+ #include "../../../Common/Common.h"
+ #include "../../Misc/TerminalCodes.h"
+
+ #include <stdio.h>
+
+ /* Enable C linkage for C++ Compilers: */
+ #if defined(__cplusplus)
+ extern "C" {
+ #endif
+
+ /* Preprocessor Checks: */
+ #if !defined(__INCLUDE_FROM_SERIAL_H) && !defined(__INCLUDE_FROM_SERIAL_C)
+ #error Do not include this file directly. Include LUFA/Drivers/Peripheral/Serial.h instead.
+ #endif
+
+ /* Private Interface - For use in library only: */
+ #if !defined(__DOXYGEN__)
+ /* External Variables: */
+ extern FILE USARTSerialStream;
+
+ /* Function Prototypes: */
+ int Serial_putchar(char DataByte,
+ FILE *Stream);
+ int Serial_getchar(FILE *Stream);
+ int Serial_getchar_Blocking(FILE *Stream);
+ #endif
+
+ /* Public Interface - May be used in end-application: */
+ /* Macros: */
+ /** Macro for calculating the baud value from a given baud rate when the \c U2X (double speed) bit is
+ * not set.
+ *
+ * \param[in] Baud Target serial UART baud rate.
+ *
+ * \return Closest UBRR register value for the given UART frequency.
+ */
+ #define SERIAL_UBBRVAL(Baud) ((((F_CPU / 16) + (Baud / 2)) / (Baud)) - 1)
+
+ /** Macro for calculating the baud value from a given baud rate when the \c U2X (double speed) bit is
+ * set.
+ *
+ * \param[in] Baud Target serial UART baud rate.
+ *
+ * \return Closest UBRR register value for the given UART frequency.
+ */
+ #define SERIAL_2X_UBBRVAL(Baud) ((((F_CPU / 8) + (Baud / 2)) / (Baud)) - 1)
+
+ /* Function Prototypes: */
+ /** Transmits a given string located in program space (FLASH) through the USART.
+ *
+ * \param[in,out] USART Pointer to the base of the USART peripheral within the device.
+ * \param[in] FlashStringPtr Pointer to a string located in program space.
+ */
+ void Serial_SendString_P(USART_t* const USART,
+ const char* FlashStringPtr) ATTR_NON_NULL_PTR_ARG(1);
+
+ /** Transmits a given string located in SRAM memory through the USART.
+ *
+ * \param[in,out] USART Pointer to the base of the USART peripheral within the device.
+ * \param[in] StringPtr Pointer to a string located in SRAM space.
+ */
+ void Serial_SendString(USART_t* const USART,
+ const char* StringPtr) ATTR_NON_NULL_PTR_ARG(1);
+
+ /** Transmits a given buffer located in SRAM memory through the USART.
+ *
+ * \param[in,out] USART Pointer to the base of the USART peripheral within the device.
+ * \param[in] Buffer Pointer to a buffer containing the data to send.
+ * \param[in] Length Length of the data to send, in bytes.
+ */
+ void Serial_SendData(USART_t* const USART,
+ const uint8_t* Buffer, uint16_t Length) ATTR_NON_NULL_PTR_ARG(1);
+
+ /** Creates a standard character stream from the USART so that it can be used with all the regular functions
+ * in the avr-libc \c <stdio.h> library that accept a \c FILE stream as a destination (e.g. \c fprintf). The created
+ * stream is bidirectional and can be used for both input and output functions.
+ *
+ * Reading data from this stream is non-blocking, i.e. in most instances, complete strings cannot be read in by a single
+ * fetch, as the endpoint will not be ready at some point in the transmission, aborting the transfer. However, this may
+ * be used when the read data is processed byte-per-bye (via \c getc()) or when the user application will implement its own
+ * line buffering.
+ *
+ * \param[in,out] Stream Pointer to a FILE structure where the created stream should be placed, if \c NULL, \c stdout
+ * and \c stdin will be configured to use the USART.
+ *
+ * \pre The USART must first be configured via a call to \ref Serial_Init() before the stream is used.
+ */
+ void Serial_CreateStream(FILE* Stream);
+
+ /** Identical to \ref Serial_CreateStream(), except that reads are blocking until the calling stream function terminates
+ * the transfer.
+ *
+ * \param[in,out] Stream Pointer to a FILE structure where the created stream should be placed, if \c NULL, \c stdout
+ * and \c stdin will be configured to use the USART.
+ *
+ * \pre The USART must first be configured via a call to \ref Serial_Init() before the stream is used.
+ */
+ void Serial_CreateBlockingStream(FILE* Stream);
+
+ /* Inline Functions: */
+ /** Initializes the USART, ready for serial data transmission and reception. This initializes the interface to
+ * standard 8-bit, no parity, 1 stop bit settings suitable for most applications.
+ *
+ * \param[in,out] USART Pointer to the base of the USART peripheral within the device.
+ * \param[in] BaudRate Serial baud rate, in bits per second.
+ * \param[in] DoubleSpeed Enables double speed mode when set, halving the sample time to double the baud rate.
+ */
+ static inline void Serial_Init(USART_t* const USART,
+ const uint32_t BaudRate,
+ const bool DoubleSpeed)
+ {
+ uint16_t BaudValue = (DoubleSpeed ? SERIAL_2X_UBBRVAL(BaudRate) : SERIAL_UBBRVAL(BaudRate));
+
+ USART->BAUDCTRLB = (BaudValue >> 8);
+ USART->BAUDCTRLA = (BaudValue & 0xFF);
+
+ USART->CTRLC = (USART_CMODE_ASYNCHRONOUS_gc | USART_PMODE_DISABLED_gc | USART_CHSIZE_8BIT_gc);
+ USART->CTRLB = (USART_RXEN_bm | USART_TXEN_bm | (DoubleSpeed ? USART_CLK2X_bm : 0));
+ }
+
+ /** Turns off the USART driver, disabling and returning used hardware to their default configuration.
+ *
+ * \param[in,out] USART Pointer to the base of the USART peripheral within the device.
+ */
+ static inline void Serial_Disable(USART_t* const USART)
+ {
+ USART->CTRLA = 0;
+ USART->CTRLB = 0;
+ USART->CTRLC = 0;
+ }
+
+ /** Indicates whether a character has been received through the USART.
+ *
+ * \param[in,out] USART Pointer to the base of the USART peripheral within the device.
+ *
+ * \return Boolean \c true if a character has been received, \c false otherwise.
+ */
+ static inline bool Serial_IsCharReceived(USART_t* const USART) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
+ static inline bool Serial_IsCharReceived(USART_t* const USART)
+ {
+ return ((USART->STATUS & USART_RXCIF_bm) ? true : false);
+ }
+
+ /** Transmits a given byte through the USART.
+ *
+ * \param[in,out] USART Pointer to the base of the USART peripheral within the device.
+ * \param[in] DataByte Byte to transmit through the USART.
+ */
+ static inline void Serial_SendByte(USART_t* const USART,
+ const char DataByte) ATTR_ALWAYS_INLINE;
+ static inline void Serial_SendByte(USART_t* const USART,
+ const char DataByte)
+ {
+ while (!(USART->STATUS & USART_DREIF_bm));
+ USART->DATA = DataByte;
+ }
+
+ /** Receives the next byte from the USART.
+ *
+ * \param[in,out] USART Pointer to the base of the USART peripheral within the device.
+ *
+ * \return Next byte received from the USART, or a negative value if no byte has been received.
+ */
+ static inline int16_t Serial_ReceiveByte(USART_t* const USART) ATTR_ALWAYS_INLINE;
+ static inline int16_t Serial_ReceiveByte(USART_t* const USART)
+ {
+ if (!(Serial_IsCharReceived(USART)))
+ return -1;
+
+ USART->STATUS = USART_RXCIF_bm;
+ return USART->DATA;
+ }
+
+ /* Disable C linkage for C++ Compilers: */
+ #if defined(__cplusplus)
+ }
+ #endif
+
+#endif
+
+/** @} */
+
diff --git a/LUFA/Drivers/USB/Class/AndroidAccessoryClass.h b/LUFA/Drivers/USB/Class/AndroidAccessoryClass.h
index c2528d99..3cede602 100644
--- a/LUFA/Drivers/USB/Class/AndroidAccessoryClass.h
+++ b/LUFA/Drivers/USB/Class/AndroidAccessoryClass.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/AudioClass.h b/LUFA/Drivers/USB/Class/AudioClass.h
index ce3b41e8..03b12512 100644
--- a/LUFA/Drivers/USB/Class/AudioClass.h
+++ b/LUFA/Drivers/USB/Class/AudioClass.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/CDCClass.h b/LUFA/Drivers/USB/Class/CDCClass.h
index ead11c1a..baa52be0 100644
--- a/LUFA/Drivers/USB/Class/CDCClass.h
+++ b/LUFA/Drivers/USB/Class/CDCClass.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/Common/AndroidAccessoryClassCommon.h b/LUFA/Drivers/USB/Class/Common/AndroidAccessoryClassCommon.h
index b9a8dd53..c1c0e8df 100644
--- a/LUFA/Drivers/USB/Class/Common/AndroidAccessoryClassCommon.h
+++ b/LUFA/Drivers/USB/Class/Common/AndroidAccessoryClassCommon.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/Common/AudioClassCommon.h b/LUFA/Drivers/USB/Class/Common/AudioClassCommon.h
index 8f9a1075..e87710a3 100644
--- a/LUFA/Drivers/USB/Class/Common/AudioClassCommon.h
+++ b/LUFA/Drivers/USB/Class/Common/AudioClassCommon.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/Common/CDCClassCommon.h b/LUFA/Drivers/USB/Class/Common/CDCClassCommon.h
index 1d01c82f..d612a05e 100644
--- a/LUFA/Drivers/USB/Class/Common/CDCClassCommon.h
+++ b/LUFA/Drivers/USB/Class/Common/CDCClassCommon.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/Common/HIDClassCommon.h b/LUFA/Drivers/USB/Class/Common/HIDClassCommon.h
index 6e5187bb..add6cf8c 100644
--- a/LUFA/Drivers/USB/Class/Common/HIDClassCommon.h
+++ b/LUFA/Drivers/USB/Class/Common/HIDClassCommon.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -392,7 +392,7 @@
* \code
* struct
* {
- * uint8_t Modifier; // Keyboard modifier byte indicating pressed modifier keys (HID_KEYBOARD_MODIFER_* masks)
+ * uint8_t Modifier; // Keyboard modifier byte indicating pressed modifier keys (\c HID_KEYBOARD_MODIFER_* masks)
* uint8_t Reserved; // Reserved for OEM use, always set to 0.
* uint8_t KeyCode[MaxKeys]; // Length determined by the number of keys that can be reported
* } Keyboard_Report;
@@ -456,7 +456,7 @@
* \param[in] MinPhysicalVal Minimum X/Y physical axis value, for movement resolution calculations (16-bit).
* \param[in] MaxPhysicalVal Maximum X/Y physical axis value, for movement resolution calculations (16-bit).
* \param[in] Buttons Total number of buttons in the device (8-bit).
- * \param[in] AbsoluteCoords Boolean true to use absolute X/Y coordinates (e.g. touchscreen).
+ * \param[in] AbsoluteCoords Boolean \c true to use absolute X/Y coordinates (e.g. touchscreen).
*/
#define HID_DESCRIPTOR_MOUSE(MinAxisVal, MaxAxisVal, MinPhysicalVal, MaxPhysicalVal, Buttons, AbsoluteCoords) \
HID_RI_USAGE_PAGE(8, 0x01), \
@@ -491,7 +491,7 @@
/** \hideinitializer
* A list of HID report item array elements that describe a typical Vendor Defined byte array HID report descriptor,
* used for transporting arbitrary data between the USB host and device via HID reports. The resulting report should be
- * a uint8_t byte array of the specified length in both Device to Host (IN) and Host to Device (OUT) directions.
+ * a \c uint8_t byte array of the specified length in both Device to Host (IN) and Host to Device (OUT) directions.
*
* \param[in] VendorPageNum Vendor Defined HID Usage Page index, ranging from 0x00 to 0xFF.
* \param[in] CollectionUsage Vendor Usage for the encompassing report IN and OUT collection, ranging from 0x00 to 0xFF.
diff --git a/LUFA/Drivers/USB/Class/Common/HIDParser.c b/LUFA/Drivers/USB/Class/Common/HIDParser.c
index 24b284c1..d3e7d022 100644
--- a/LUFA/Drivers/USB/Class/Common/HIDParser.c
+++ b/LUFA/Drivers/USB/Class/Common/HIDParser.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/Common/HIDParser.h b/LUFA/Drivers/USB/Class/Common/HIDParser.h
index 25e201b3..39c5817d 100644
--- a/LUFA/Drivers/USB/Class/Common/HIDParser.h
+++ b/LUFA/Drivers/USB/Class/Common/HIDParser.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -222,7 +222,7 @@
{
uint16_t BitOffset; /**< Bit offset in the IN, OUT or FEATURE report of the item. */
uint8_t ItemType; /**< Report item type, a value in \ref HID_ReportItemTypes_t. */
- uint16_t ItemFlags; /**< Item data flags, a mask of HID_IOF_* constants. */
+ uint16_t ItemFlags; /**< Item data flags, a mask of \c HID_IOF_* constants. */
uint8_t ReportID; /**< Report ID this item belongs to, or 0x00 if device has only one report */
HID_CollectionPath_t* CollectionPath; /**< Collection path of the item. */
diff --git a/LUFA/Drivers/USB/Class/Common/HIDReportData.h b/LUFA/Drivers/USB/Class/Common/HIDReportData.h
index 2c36e8ea..2500c282 100644
--- a/LUFA/Drivers/USB/Class/Common/HIDReportData.h
+++ b/LUFA/Drivers/USB/Class/Common/HIDReportData.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/Common/MIDIClassCommon.h b/LUFA/Drivers/USB/Class/Common/MIDIClassCommon.h
index 72554997..60b0908f 100644
--- a/LUFA/Drivers/USB/Class/Common/MIDIClassCommon.h
+++ b/LUFA/Drivers/USB/Class/Common/MIDIClassCommon.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/Common/MassStorageClassCommon.h b/LUFA/Drivers/USB/Class/Common/MassStorageClassCommon.h
index 9d37b3db..0c49607f 100644
--- a/LUFA/Drivers/USB/Class/Common/MassStorageClassCommon.h
+++ b/LUFA/Drivers/USB/Class/Common/MassStorageClassCommon.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/Common/PrinterClassCommon.h b/LUFA/Drivers/USB/Class/Common/PrinterClassCommon.h
index c370bbc9..7eac5888 100644
--- a/LUFA/Drivers/USB/Class/Common/PrinterClassCommon.h
+++ b/LUFA/Drivers/USB/Class/Common/PrinterClassCommon.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/Common/RNDISClassCommon.h b/LUFA/Drivers/USB/Class/Common/RNDISClassCommon.h
index 82c2a959..ff737f0b 100644
--- a/LUFA/Drivers/USB/Class/Common/RNDISClassCommon.h
+++ b/LUFA/Drivers/USB/Class/Common/RNDISClassCommon.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/Common/StillImageClassCommon.h b/LUFA/Drivers/USB/Class/Common/StillImageClassCommon.h
index 4f418ad9..b7150d4b 100644
--- a/LUFA/Drivers/USB/Class/Common/StillImageClassCommon.h
+++ b/LUFA/Drivers/USB/Class/Common/StillImageClassCommon.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/Device/AudioClassDevice.c b/LUFA/Drivers/USB/Class/Device/AudioClassDevice.c
index 3ac47d56..1e91a613 100644
--- a/LUFA/Drivers/USB/Class/Device/AudioClassDevice.c
+++ b/LUFA/Drivers/USB/Class/Device/AudioClassDevice.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -44,21 +44,18 @@ void Audio_Device_ProcessControlRequest(USB_ClassInfo_Audio_Device_t* const Audi
if ((USB_ControlRequest.bmRequestType & CONTROL_REQTYPE_RECIPIENT) == REQREC_INTERFACE)
{
- if (USB_ControlRequest.wIndex != AudioInterfaceInfo->Config.StreamingInterfaceNumber)
+ if ((USB_ControlRequest.wIndex & 0xFF) != AudioInterfaceInfo->Config.StreamingInterfaceNumber)
return;
}
else if ((USB_ControlRequest.bmRequestType & CONTROL_REQTYPE_RECIPIENT) == REQREC_ENDPOINT)
{
- bool EndpointFilterMatch = false;
-
- EndpointFilterMatch |= (AudioInterfaceInfo->Config.DataINEndpointNumber &&
- ((uint8_t)USB_ControlRequest.wIndex == (ENDPOINT_DIR_IN | AudioInterfaceInfo->Config.DataINEndpointNumber)));
-
- EndpointFilterMatch |= (AudioInterfaceInfo->Config.DataOUTEndpointNumber &&
- ((uint8_t)USB_ControlRequest.wIndex == (ENDPOINT_DIR_OUT | AudioInterfaceInfo->Config.DataOUTEndpointNumber)));
-
- if (!(EndpointFilterMatch))
- return;
+ uint8_t EndpointIndex = (USB_ControlRequest.wIndex & 0xFF);
+
+ if ((EndpointIndex != (ENDPOINT_DIR_IN | AudioInterfaceInfo->Config.DataINEndpointNumber)) &&
+ (EndpointIndex != (ENDPOINT_DIR_OUT | AudioInterfaceInfo->Config.DataOUTEndpointNumber)))
+ {
+ return;
+ }
}
switch (USB_ControlRequest.bRequest)
@@ -107,6 +104,26 @@ void Audio_Device_ProcessControlRequest(USB_ClassInfo_Audio_Device_t* const Audi
EndpointControl, &ValueLength, Value);
}
}
+ else if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
+ {
+ uint8_t Property = USB_ControlRequest.bRequest;
+ uint8_t Entity = (USB_ControlRequest.wIndex >> 8);
+ uint16_t Parameter = USB_ControlRequest.wValue;
+
+ if (CALLBACK_Audio_Device_GetSetInterfaceProperty(AudioInterfaceInfo, Property, Entity,
+ Parameter, NULL, NULL))
+ {
+ uint16_t ValueLength = USB_ControlRequest.wLength;
+ uint8_t Value[ValueLength];
+
+ Endpoint_ClearSETUP();
+ Endpoint_Read_Control_Stream_LE(Value, ValueLength);
+ Endpoint_ClearIN();
+
+ CALLBACK_Audio_Device_GetSetInterfaceProperty(AudioInterfaceInfo, Property, Entity,
+ Parameter, NULL, NULL);
+ }
+ }
break;
case AUDIO_REQ_GetCurrent:
@@ -129,6 +146,22 @@ void Audio_Device_ProcessControlRequest(USB_ClassInfo_Audio_Device_t* const Audi
Endpoint_ClearOUT();
}
}
+ else if (USB_ControlRequest.bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))
+ {
+ uint8_t Property = USB_ControlRequest.bRequest;
+ uint8_t Entity = (USB_ControlRequest.wIndex >> 8);
+ uint16_t Parameter = USB_ControlRequest.wValue;
+ uint16_t ValueLength = USB_ControlRequest.wLength;
+ uint8_t Value[ValueLength];
+
+ if (CALLBACK_Audio_Device_GetSetInterfaceProperty(AudioInterfaceInfo, Property, Entity,
+ Parameter, &ValueLength, Value))
+ {
+ Endpoint_ClearSETUP();
+ Endpoint_Write_Control_Stream_LE(Value, ValueLength);
+ Endpoint_ClearOUT();
+ }
+ }
break;
}
diff --git a/LUFA/Drivers/USB/Class/Device/AudioClassDevice.h b/LUFA/Drivers/USB/Class/Device/AudioClassDevice.h
index aba4248f..dad177e0 100644
--- a/LUFA/Drivers/USB/Class/Device/AudioClassDevice.h
+++ b/LUFA/Drivers/USB/Class/Device/AudioClassDevice.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -77,7 +77,7 @@
*/
typedef struct
{
- const struct
+ struct
{
uint8_t StreamingInterfaceNumber; /**< Index of the Audio Streaming interface within the device this
* structure controls.
@@ -147,14 +147,43 @@
* \param[in,out] Data Pointer to a location where the parameter data is stored for SET operations, or where
* the retrieved data is to be stored for GET operations.
*
- * \return Boolean true if the property get/set was successful, false otherwise
+ * \return Boolean \c true if the property GET/SET was successful, \c false otherwise
*/
bool CALLBACK_Audio_Device_GetSetEndpointProperty(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo,
const uint8_t EndpointProperty,
const uint8_t EndpointAddress,
const uint8_t EndpointControl,
uint16_t* const DataLength,
- uint8_t* Data);
+ uint8_t* Data) ATTR_NON_NULL_PTR_ARG(1);
+
+ /** Audio class driver callback for the setting and retrieval of streaming interface properties. This callback must be implemented
+ * in the user application to handle property manipulations on streaming audio interfaces.
+ *
+ * When the DataLength parameter is NULL, this callback should only indicate whether the specified operation is valid for
+ * the given entity and should return as fast as possible. When non-NULL, this value may be altered for GET operations
+ * to indicate the size of the retreived data.
+ *
+ * \note The length of the retrieved data stored into the Data buffer on GET operations should not exceed the initial value
+ * of the \c DataLength parameter.
+ *
+ * \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state.
+ * \param[in] Property Property of the interface to get or set, a value from \ref Audio_ClassRequests_t.
+ * \param[in] EntityAddress Address of the audio entity whose property is being referenced.
+ * \param[in] Parameter Parameter of the entity to get or set, specific to each type of entity (see USB Audio specification).
+ * \param[in,out] DataLength For SET operations, the length of the parameter data to set. For GET operations, the maximum
+ * length of the retrieved data. When NULL, the function should return whether the given property
+ * and parameter is valid for the requested endpoint without reading or modifying the Data buffer.
+ * \param[in,out] Data Pointer to a location where the parameter data is stored for SET operations, or where
+ * the retrieved data is to be stored for GET operations.
+ *
+ * \return Boolean \c true if the property GET/SET was successful, \c false otherwise
+ */
+ bool CALLBACK_Audio_Device_GetSetInterfaceProperty(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo,
+ const uint8_t Property,
+ const uint8_t EntityAddress,
+ const uint16_t Parameter,
+ uint16_t* const DataLength,
+ uint8_t* Data) ATTR_NON_NULL_PTR_ARG(1);
/** Audio class driver event for an Audio Stream start/stop change. This event fires each time the device receives a stream enable or
* disable control request from the host, to start and stop the audio stream. The current state of the stream can be determined by the
diff --git a/LUFA/Drivers/USB/Class/Device/CDCClassDevice.c b/LUFA/Drivers/USB/Class/Device/CDCClassDevice.c
index 01674408..f0ddfcd9 100644
--- a/LUFA/Drivers/USB/Class/Device/CDCClassDevice.c
+++ b/LUFA/Drivers/USB/Class/Device/CDCClassDevice.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/Device/CDCClassDevice.h b/LUFA/Drivers/USB/Class/Device/CDCClassDevice.h
index a172e4ac..998b0a73 100644
--- a/LUFA/Drivers/USB/Class/Device/CDCClassDevice.h
+++ b/LUFA/Drivers/USB/Class/Device/CDCClassDevice.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -96,7 +96,7 @@
*/
typedef struct
{
- const struct
+ struct
{
uint8_t ControlInterfaceNumber; /**< Interface number of the CDC control interface within the device. */
@@ -173,8 +173,8 @@
/** CDC class driver event for a control line state change on a CDC interface. This event fires each time the host requests a
* control line state change (containing the virtual serial control line states, such as DTR) and may be hooked in the
* user program by declaring a handler function with the same name and parameters listed here. The new control line states
- * are available in the State.ControlLineStates.HostToDevice value inside the CDC interface structure passed as a parameter, set as
- * a mask of CDC_CONTROL_LINE_OUT_* masks.
+ * are available in the \c ControlLineStates.HostToDevice value inside the CDC interface structure passed as a parameter, set as
+ * a mask of \c CDC_CONTROL_LINE_OUT_* masks.
*
* \param[in,out] CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
*/
@@ -281,7 +281,7 @@
/** Sends a Serial Control Line State Change notification to the host. This should be called when the virtual serial
* control lines (DCD, DSR, etc.) have changed states, or to give BREAK notifications to the host. Line states persist
* until they are cleared via a second notification. This should be called each time the CDC class driver's
- * ControlLineStates.DeviceToHost value is updated to push the new states to the USB host.
+ * \c ControlLineStates.DeviceToHost value is updated to push the new states to the USB host.
*
* \pre This function must only be called when the Device state machine is in the \ref DEVICE_STATE_Configured state or
* the call will fail.
@@ -291,7 +291,7 @@
void CDC_Device_SendControlLineStateChange(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
/** Creates a standard character stream for the given CDC Device instance so that it can be used with all the regular
- * functions in the standard <stdio.h> library that accept a \c FILE stream as a destination (e.g. \c fprintf). The created
+ * functions in the standard <stdio.h> library that accept a \c FILE stream as a destination (e.g. \c fprintf()). The created
* stream is bidirectional and can be used for both input and output functions.
*
* Reading data from this stream is non-blocking, i.e. in most instances, complete strings cannot be read in by a single
diff --git a/LUFA/Drivers/USB/Class/Device/HIDClassDevice.c b/LUFA/Drivers/USB/Class/Device/HIDClassDevice.c
index 071f55f4..5c8d878e 100644
--- a/LUFA/Drivers/USB/Class/Device/HIDClassDevice.c
+++ b/LUFA/Drivers/USB/Class/Device/HIDClassDevice.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -156,6 +156,9 @@ void HID_Device_USBTask(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo)
if (USB_DeviceState != DEVICE_STATE_Configured)
return;
+ if (HIDInterfaceInfo->State.PrevFrameNum == USB_Device_GetFrameNumber())
+ return;
+
Endpoint_SelectEndpoint(HIDInterfaceInfo->Config.ReportINEndpointNumber);
if (Endpoint_IsReadWriteAllowed())
@@ -190,6 +193,8 @@ void HID_Device_USBTask(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo)
Endpoint_ClearIN();
}
+
+ HIDInterfaceInfo->State.PrevFrameNum = USB_Device_GetFrameNumber();
}
}
diff --git a/LUFA/Drivers/USB/Class/Device/HIDClassDevice.h b/LUFA/Drivers/USB/Class/Device/HIDClassDevice.h
index 4b0622f7..a6361c6b 100644
--- a/LUFA/Drivers/USB/Class/Device/HIDClassDevice.h
+++ b/LUFA/Drivers/USB/Class/Device/HIDClassDevice.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -81,7 +81,7 @@
*/
typedef struct
{
- const struct
+ struct
{
uint8_t InterfaceNumber; /**< Interface number of the HID interface within the device. */
@@ -113,6 +113,7 @@
struct
{
bool UsingReportProtocol; /**< Indicates if the HID interface is set to Boot or Report protocol mode. */
+ uint16_t PrevFrameNum; /**< Frame number of the previous HID report packet opportunity. */
uint16_t IdleCount; /**< Report idle period, in milliseconds, set by the host. */
uint16_t IdleMSRemaining; /**< Total number of milliseconds remaining before the idle period elapsed - this
* should be decremented by the user application if non-zero each millisecond. */
diff --git a/LUFA/Drivers/USB/Class/Device/MIDIClassDevice.c b/LUFA/Drivers/USB/Class/Device/MIDIClassDevice.c
index 13454592..9f0506e5 100644
--- a/LUFA/Drivers/USB/Class/Device/MIDIClassDevice.c
+++ b/LUFA/Drivers/USB/Class/Device/MIDIClassDevice.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/Device/MIDIClassDevice.h b/LUFA/Drivers/USB/Class/Device/MIDIClassDevice.h
index 603b05f6..4fe49af1 100644
--- a/LUFA/Drivers/USB/Class/Device/MIDIClassDevice.h
+++ b/LUFA/Drivers/USB/Class/Device/MIDIClassDevice.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -77,7 +77,7 @@
*/
typedef struct
{
- const struct
+ struct
{
uint8_t StreamingInterfaceNumber; /**< Index of the Audio Streaming interface within the device this structure controls. */
@@ -94,7 +94,7 @@
struct
{
- // No state information for this class
+ uint8_t RESERVED; // No state information for this class
} State; /**< State data for the USB class interface within the device. All elements in this section
* are reset to their defaults when the interface is enumerated.
*/
diff --git a/LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.c b/LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.c
index d95b95e0..6294a0a9 100644
--- a/LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.c
+++ b/LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.h b/LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.h
index f55837ee..c2d536ce 100644
--- a/LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.h
+++ b/LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -77,7 +77,7 @@
*/
typedef struct
{
- const struct
+ struct
{
uint8_t InterfaceNumber; /**< Interface number of the Mass Storage interface within the device. */
diff --git a/LUFA/Drivers/USB/Class/Device/RNDISClassDevice.c b/LUFA/Drivers/USB/Class/Device/RNDISClassDevice.c
index 1db5ec42..f78a5abf 100644
--- a/LUFA/Drivers/USB/Class/Device/RNDISClassDevice.c
+++ b/LUFA/Drivers/USB/Class/Device/RNDISClassDevice.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/Device/RNDISClassDevice.h b/LUFA/Drivers/USB/Class/Device/RNDISClassDevice.h
index dbef115a..ccd20e38 100644
--- a/LUFA/Drivers/USB/Class/Device/RNDISClassDevice.h
+++ b/LUFA/Drivers/USB/Class/Device/RNDISClassDevice.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -77,7 +77,7 @@
*/
typedef struct
{
- const struct
+ struct
{
uint8_t ControlInterfaceNumber; /**< Interface number of the RNDIS control interface within the device. */
diff --git a/LUFA/Drivers/USB/Class/HIDClass.h b/LUFA/Drivers/USB/Class/HIDClass.h
index 658f639e..04d5db28 100644
--- a/LUFA/Drivers/USB/Class/HIDClass.h
+++ b/LUFA/Drivers/USB/Class/HIDClass.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.c b/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.c
index 2bac70da..cc705893 100644
--- a/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.c
+++ b/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -41,6 +41,8 @@ bool AOA_Host_ValidateAccessoryDevice(USB_ClassInfo_AOA_Host_t* const AOAInterfa
const USB_Descriptor_Device_t* const DeviceDescriptor,
bool* const NeedModeSwitch)
{
+ (void)AOAInterfaceInfo;
+
if (DeviceDescriptor->Header.Type != DTYPE_Device)
return false;
diff --git a/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.h b/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.h
index a6d024a4..d9813428 100644
--- a/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.h
+++ b/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -83,7 +83,7 @@
*/
typedef struct
{
- const struct
+ struct
{
uint8_t DataINPipeNumber; /**< Pipe number of the AOA interface's IN data pipe. */
bool DataINPipeDoubleBank; /**< Indicates if the AOA interface's IN data pipe should use double banking. */
diff --git a/LUFA/Drivers/USB/Class/Host/AudioClassHost.c b/LUFA/Drivers/USB/Class/Host/AudioClassHost.c
index 8caea9be..e5591ec1 100644
--- a/LUFA/Drivers/USB/Class/Host/AudioClassHost.c
+++ b/LUFA/Drivers/USB/Class/Host/AudioClassHost.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/Host/AudioClassHost.h b/LUFA/Drivers/USB/Class/Host/AudioClassHost.h
index 781220ee..a6e425d5 100644
--- a/LUFA/Drivers/USB/Class/Host/AudioClassHost.h
+++ b/LUFA/Drivers/USB/Class/Host/AudioClassHost.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -77,7 +77,7 @@
*/
typedef struct
{
- const struct
+ struct
{
uint8_t DataINPipeNumber; /**< Pipe number of the Audio interface's IN data pipe. If this interface should not
* bind to an IN endpoint, this may be set to 0 to disable audio input streaming for
diff --git a/LUFA/Drivers/USB/Class/Host/CDCClassHost.c b/LUFA/Drivers/USB/Class/Host/CDCClassHost.c
index dfe491ad..e1a972f3 100644
--- a/LUFA/Drivers/USB/Class/Host/CDCClassHost.c
+++ b/LUFA/Drivers/USB/Class/Host/CDCClassHost.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/Host/CDCClassHost.h b/LUFA/Drivers/USB/Class/Host/CDCClassHost.h
index 3ab01927..0beb5b1d 100644
--- a/LUFA/Drivers/USB/Class/Host/CDCClassHost.h
+++ b/LUFA/Drivers/USB/Class/Host/CDCClassHost.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -79,7 +79,7 @@
*/
typedef struct
{
- const struct
+ struct
{
uint8_t DataINPipeNumber; /**< Pipe number of the CDC interface's IN data pipe. */
bool DataINPipeDoubleBank; /**< Indicates if the CDC interface's IN data pipe should use double banking. */
@@ -315,7 +315,7 @@
/** CDC class driver event for a control line state change on a CDC host interface. This event fires each time the device notifies
* the host of a control line state change (containing the virtual serial control line states, such as DCD) and may be hooked in the
* user program by declaring a handler function with the same name and parameters listed here. The new control line states
- * are available in the ControlLineStates.DeviceToHost value inside the CDC host interface structure passed as a parameter, set as
+ * are available in the \c ControlLineStates.DeviceToHost value inside the CDC host interface structure passed as a parameter, set as
* a mask of \c CDC_CONTROL_LINE_IN_* masks.
*
* \param[in,out] CDCInterfaceInfo Pointer to a structure containing a CDC Class host configuration and state.
diff --git a/LUFA/Drivers/USB/Class/Host/HIDClassHost.c b/LUFA/Drivers/USB/Class/Host/HIDClassHost.c
index 5254f71c..f51bdf74 100644
--- a/LUFA/Drivers/USB/Class/Host/HIDClassHost.c
+++ b/LUFA/Drivers/USB/Class/Host/HIDClassHost.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/Host/HIDClassHost.h b/LUFA/Drivers/USB/Class/Host/HIDClassHost.h
index 4ce4ef37..2e88679f 100644
--- a/LUFA/Drivers/USB/Class/Host/HIDClassHost.h
+++ b/LUFA/Drivers/USB/Class/Host/HIDClassHost.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -81,7 +81,7 @@
*/
typedef struct
{
- const struct
+ struct
{
uint8_t DataINPipeNumber; /**< Pipe number of the HID interface's IN data pipe. */
bool DataINPipeDoubleBank; /**< Indicates if the HID interface's IN data pipe should use double banking. */
diff --git a/LUFA/Drivers/USB/Class/Host/MIDIClassHost.c b/LUFA/Drivers/USB/Class/Host/MIDIClassHost.c
index 6795d2ad..5aadbcc7 100644
--- a/LUFA/Drivers/USB/Class/Host/MIDIClassHost.c
+++ b/LUFA/Drivers/USB/Class/Host/MIDIClassHost.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/Host/MIDIClassHost.h b/LUFA/Drivers/USB/Class/Host/MIDIClassHost.h
index bdc4848e..e934ddac 100644
--- a/LUFA/Drivers/USB/Class/Host/MIDIClassHost.h
+++ b/LUFA/Drivers/USB/Class/Host/MIDIClassHost.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -77,7 +77,7 @@
*/
typedef struct
{
- const struct
+ struct
{
uint8_t DataINPipeNumber; /**< Pipe number of the MIDI interface's streaming IN data pipe. */
bool DataINPipeDoubleBank; /**< Indicates if the MIDI interface's IN data pipe should use double banking. */
diff --git a/LUFA/Drivers/USB/Class/Host/MassStorageClassHost.c b/LUFA/Drivers/USB/Class/Host/MassStorageClassHost.c
index 7422a5e1..24b4edc7 100644
--- a/LUFA/Drivers/USB/Class/Host/MassStorageClassHost.c
+++ b/LUFA/Drivers/USB/Class/Host/MassStorageClassHost.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/Host/MassStorageClassHost.h b/LUFA/Drivers/USB/Class/Host/MassStorageClassHost.h
index 772c46bc..25d7e1e5 100644
--- a/LUFA/Drivers/USB/Class/Host/MassStorageClassHost.h
+++ b/LUFA/Drivers/USB/Class/Host/MassStorageClassHost.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -81,7 +81,7 @@
*/
typedef struct
{
- const struct
+ struct
{
uint8_t DataINPipeNumber; /**< Pipe number of the Mass Storage interface's IN data pipe. */
bool DataINPipeDoubleBank; /**< Indicates if the Mass Storage interface's IN data pipe should use double banking. */
diff --git a/LUFA/Drivers/USB/Class/Host/PrinterClassHost.c b/LUFA/Drivers/USB/Class/Host/PrinterClassHost.c
index 0a00878c..2d349911 100644
--- a/LUFA/Drivers/USB/Class/Host/PrinterClassHost.c
+++ b/LUFA/Drivers/USB/Class/Host/PrinterClassHost.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/Host/PrinterClassHost.h b/LUFA/Drivers/USB/Class/Host/PrinterClassHost.h
index 07342571..4d9baf0f 100644
--- a/LUFA/Drivers/USB/Class/Host/PrinterClassHost.h
+++ b/LUFA/Drivers/USB/Class/Host/PrinterClassHost.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -77,7 +77,7 @@
*/
typedef struct
{
- const struct
+ struct
{
uint8_t DataINPipeNumber; /**< Pipe number of the Printer interface's IN data pipe. */
bool DataINPipeDoubleBank; /**< Indicates if the Printer interface's IN data pipe should use double banking. */
diff --git a/LUFA/Drivers/USB/Class/Host/RNDISClassHost.c b/LUFA/Drivers/USB/Class/Host/RNDISClassHost.c
index c06968c2..a03011d6 100644
--- a/LUFA/Drivers/USB/Class/Host/RNDISClassHost.c
+++ b/LUFA/Drivers/USB/Class/Host/RNDISClassHost.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/Host/RNDISClassHost.h b/LUFA/Drivers/USB/Class/Host/RNDISClassHost.h
index de66c86b..085bde22 100644
--- a/LUFA/Drivers/USB/Class/Host/RNDISClassHost.h
+++ b/LUFA/Drivers/USB/Class/Host/RNDISClassHost.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -78,7 +78,7 @@
*/
typedef struct
{
- const struct
+ struct
{
uint8_t DataINPipeNumber; /**< Pipe number of the RNDIS interface's IN data pipe. */
bool DataINPipeDoubleBank; /**< Indicates if the RNDIS interface's IN data pipe should use double banking. */
diff --git a/LUFA/Drivers/USB/Class/Host/StillImageClassHost.c b/LUFA/Drivers/USB/Class/Host/StillImageClassHost.c
index 62fe4e58..2b5514a2 100644
--- a/LUFA/Drivers/USB/Class/Host/StillImageClassHost.c
+++ b/LUFA/Drivers/USB/Class/Host/StillImageClassHost.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/Host/StillImageClassHost.h b/LUFA/Drivers/USB/Class/Host/StillImageClassHost.h
index aa3702b3..4cda70d2 100644
--- a/LUFA/Drivers/USB/Class/Host/StillImageClassHost.h
+++ b/LUFA/Drivers/USB/Class/Host/StillImageClassHost.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -81,7 +81,7 @@
*/
typedef struct
{
- const struct
+ struct
{
uint8_t DataINPipeNumber; /**< Pipe number of the Still Image interface's IN data pipe. */
bool DataINPipeDoubleBank; /**< Indicates if the Still Image interface's IN data pipe should use double banking. */
diff --git a/LUFA/Drivers/USB/Class/MIDIClass.h b/LUFA/Drivers/USB/Class/MIDIClass.h
index d995ee87..06bd27ca 100644
--- a/LUFA/Drivers/USB/Class/MIDIClass.h
+++ b/LUFA/Drivers/USB/Class/MIDIClass.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/MassStorageClass.h b/LUFA/Drivers/USB/Class/MassStorageClass.h
index be01c675..9cf0e6f2 100644
--- a/LUFA/Drivers/USB/Class/MassStorageClass.h
+++ b/LUFA/Drivers/USB/Class/MassStorageClass.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/PrinterClass.h b/LUFA/Drivers/USB/Class/PrinterClass.h
index 0d3e2c35..45284053 100644
--- a/LUFA/Drivers/USB/Class/PrinterClass.h
+++ b/LUFA/Drivers/USB/Class/PrinterClass.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/RNDISClass.h b/LUFA/Drivers/USB/Class/RNDISClass.h
index 150750c1..63deefdb 100644
--- a/LUFA/Drivers/USB/Class/RNDISClass.h
+++ b/LUFA/Drivers/USB/Class/RNDISClass.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Class/StillImageClass.h b/LUFA/Drivers/USB/Class/StillImageClass.h
index 92f391f9..2c8f5899 100644
--- a/LUFA/Drivers/USB/Class/StillImageClass.h
+++ b/LUFA/Drivers/USB/Class/StillImageClass.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.c b/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.c
index 4bf33930..61f44564 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.c
+++ b/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.h b/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.h
index 97de0555..74920d54 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.h
+++ b/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -101,8 +101,8 @@
//@}
#if (!defined(NO_INTERNAL_SERIAL) && \
- (defined(USB_SERIES_7_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_4_AVR) || \
- (defined(USB_SERIES_2_AVR) && (!defined(__AVR_AT90USB82__) || defined(__AVR_AT90USB162__))) || \
+ (defined(USB_SERIES_7_AVR) || defined(USB_SERIES_6_AVR) || \
+ defined(USB_SERIES_4_AVR) || defined(USB_SERIES_2_AVR) || \
defined(__DOXYGEN__)))
/** String descriptor index for the device's unique serial number string descriptor within the device.
* This unique serial number is used by the host to associate resources to the device (such as drivers or COM port
diff --git a/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.c b/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.c
index ff85e044..1e7ed9ce 100644
--- a/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.c
+++ b/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.h b/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.h
index f5a03d19..ecc1fb0b 100644
--- a/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.h
+++ b/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.c b/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.c
index 218dcf96..a6032a6f 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.c
+++ b/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.h b/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.h
index 25a07755..066fc3d9 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.h
+++ b/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.c b/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.c
index dde5b1b0..6d7e9688 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.c
+++ b/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -79,6 +79,11 @@ void USB_Host_ProcessNextHostState(void)
USB_OTGPAD_On();
USB_Host_VBUS_Auto_Enable();
USB_Host_VBUS_Auto_On();
+
+ #if defined(NO_AUTO_VBUS_MANAGEMENT)
+ USB_Host_VBUS_Manual_Enable();
+ USB_Host_VBUS_Manual_On();
+ #endif
USB_HostState = HOST_STATE_Powered_WaitForConnect;
}
@@ -219,7 +224,7 @@ uint8_t USB_Host_WaitMS(uint8_t MS)
break;
}
- if (Pipe_IsError() == true)
+ if (Pipe_IsError())
{
Pipe_ClearError();
ErrorCode = HOST_WAITERROR_PipeError;
@@ -227,7 +232,7 @@ uint8_t USB_Host_WaitMS(uint8_t MS)
break;
}
- if (Pipe_IsStalled() == true)
+ if (Pipe_IsStalled())
{
Pipe_ClearStall();
ErrorCode = HOST_WAITERROR_SetupStalled;
diff --git a/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.h b/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.h
index 8dbeaa27..09c58bcd 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.h
+++ b/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -64,6 +64,10 @@
#error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.
#endif
+ #if defined(INVERTED_VBUS_ENABLE_LINE) && !defined(NO_AUTO_VBUS_MANAGEMENT)
+ #error The INVERTED_VBUS_ENABLE_LINE compile option requires NO_AUTO_VBUS_MANAGEMENT for the AVR8 architecture.
+ #endif
+
/* Public Interface - May be used in end-application: */
/* Macros: */
/** Indicates the fixed USB device address which any attached device is enumerated to when in
@@ -310,7 +314,11 @@
static inline void USB_Host_VBUS_Manual_On(void) ATTR_ALWAYS_INLINE;
static inline void USB_Host_VBUS_Manual_On(void)
{
+ #if defined(INVERTED_VBUS_ENABLE_LINE)
+ PORTE &= ~(1 << 7);
+ #else
PORTE |= (1 << 7);
+ #endif
}
static inline void USB_Host_VBUS_Auto_Off(void) ATTR_ALWAYS_INLINE;
@@ -322,7 +330,11 @@
static inline void USB_Host_VBUS_Manual_Off(void) ATTR_ALWAYS_INLINE;
static inline void USB_Host_VBUS_Manual_Off(void)
{
+ #if defined(INVERTED_VBUS_ENABLE_LINE)
+ PORTE |= (1 << 7);
+ #else
PORTE &= ~(1 << 7);
+ #endif
}
static inline void USB_Host_SetDeviceAddress(const uint8_t Address) ATTR_ALWAYS_INLINE;
diff --git a/LUFA/Drivers/USB/Core/AVR8/OTG_AVR8.h b/LUFA/Drivers/USB/Core/AVR8/OTG_AVR8.h
index 03b816e7..e981b53b 100644
--- a/LUFA/Drivers/USB/Core/AVR8/OTG_AVR8.h
+++ b/LUFA/Drivers/USB/Core/AVR8/OTG_AVR8.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c b/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c
index 7b762837..2d8e0f7f 100644
--- a/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c
+++ b/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.h b/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.h
index ec1ed822..e9da4225 100644
--- a/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.h
+++ b/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.c b/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.c
index a484df13..a6e629cd 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.c
+++ b/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.h b/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.h
index 308bd34e..5d33da83 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.h
+++ b/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_R.c b/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_R.c
index 55d137ba..4216d563 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_R.c
+++ b/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_R.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_W.c b/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_W.c
index 36685f0c..1c0d5260 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_W.c
+++ b/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_W.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_RW.c b/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_RW.c
index 7ed192df..bc685ab6 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_RW.c
+++ b/LUFA/Drivers/USB/Core/AVR8/Template/Template_Endpoint_RW.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/AVR8/Template/Template_Pipe_RW.c b/LUFA/Drivers/USB/Core/AVR8/Template/Template_Pipe_RW.c
index daba216a..a49102b4 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Template/Template_Pipe_RW.c
+++ b/LUFA/Drivers/USB/Core/AVR8/Template/Template_Pipe_RW.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c b/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c
index c660fb3b..239373ce 100644
--- a/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c
+++ b/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h b/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h
index 4c3d9991..c9d1a086 100644
--- a/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h
+++ b/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c b/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c
index 328017ef..8dfb0923 100644
--- a/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c
+++ b/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.h b/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.h
index dad55f10..a7022472 100644
--- a/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.h
+++ b/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/ConfigDescriptor.c b/LUFA/Drivers/USB/Core/ConfigDescriptor.c
index 3e0cce5c..5bdcdc66 100644
--- a/LUFA/Drivers/USB/Core/ConfigDescriptor.c
+++ b/LUFA/Drivers/USB/Core/ConfigDescriptor.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/ConfigDescriptor.h b/LUFA/Drivers/USB/Core/ConfigDescriptor.h
index 361ffa0d..31019080 100644
--- a/LUFA/Drivers/USB/Core/ConfigDescriptor.h
+++ b/LUFA/Drivers/USB/Core/ConfigDescriptor.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/Device.h b/LUFA/Drivers/USB/Core/Device.h
index fcc1b1cc..29452be1 100644
--- a/LUFA/Drivers/USB/Core/Device.h
+++ b/LUFA/Drivers/USB/Core/Device.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/DeviceStandardReq.c b/LUFA/Drivers/USB/Core/DeviceStandardReq.c
index 5e89659d..61082cfb 100644
--- a/LUFA/Drivers/USB/Core/DeviceStandardReq.c
+++ b/LUFA/Drivers/USB/Core/DeviceStandardReq.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/DeviceStandardReq.h b/LUFA/Drivers/USB/Core/DeviceStandardReq.h
index 2369f485..a319b7ae 100644
--- a/LUFA/Drivers/USB/Core/DeviceStandardReq.h
+++ b/LUFA/Drivers/USB/Core/DeviceStandardReq.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/Endpoint.h b/LUFA/Drivers/USB/Core/Endpoint.h
index 8c895fd3..1fcc6b6f 100644
--- a/LUFA/Drivers/USB/Core/Endpoint.h
+++ b/LUFA/Drivers/USB/Core/Endpoint.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/EndpointStream.h b/LUFA/Drivers/USB/Core/EndpointStream.h
index 4236253d..236590d6 100644
--- a/LUFA/Drivers/USB/Core/EndpointStream.h
+++ b/LUFA/Drivers/USB/Core/EndpointStream.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/Events.c b/LUFA/Drivers/USB/Core/Events.c
index cd340fbb..5733aa83 100644
--- a/LUFA/Drivers/USB/Core/Events.c
+++ b/LUFA/Drivers/USB/Core/Events.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/Events.h b/LUFA/Drivers/USB/Core/Events.h
index f4076610..2fff4404 100644
--- a/LUFA/Drivers/USB/Core/Events.h
+++ b/LUFA/Drivers/USB/Core/Events.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/Host.h b/LUFA/Drivers/USB/Core/Host.h
index adfdc253..dd9983df 100644
--- a/LUFA/Drivers/USB/Core/Host.h
+++ b/LUFA/Drivers/USB/Core/Host.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/HostStandardReq.c b/LUFA/Drivers/USB/Core/HostStandardReq.c
index cb0bc762..649ad5e8 100644
--- a/LUFA/Drivers/USB/Core/HostStandardReq.c
+++ b/LUFA/Drivers/USB/Core/HostStandardReq.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/HostStandardReq.h b/LUFA/Drivers/USB/Core/HostStandardReq.h
index d076a8a6..d4f41874 100644
--- a/LUFA/Drivers/USB/Core/HostStandardReq.h
+++ b/LUFA/Drivers/USB/Core/HostStandardReq.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -165,7 +165,7 @@
/** Retrieves the current feature status of the attached device, via a GET STATUS standard request. The
* retrieved feature status can then be examined by masking the retrieved value with the various
- * FEATURE_* masks for bus/self power information and remote wakeup support.
+ * \c FEATURE_* masks for bus/self power information and remote wakeup support.
*
* \note After this routine returns, the control pipe will be selected.
*
diff --git a/LUFA/Drivers/USB/Core/OTG.h b/LUFA/Drivers/USB/Core/OTG.h
index 01cc059a..6e511fb8 100644
--- a/LUFA/Drivers/USB/Core/OTG.h
+++ b/LUFA/Drivers/USB/Core/OTG.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/Pipe.h b/LUFA/Drivers/USB/Core/Pipe.h
index fe74c9af..bb56b810 100644
--- a/LUFA/Drivers/USB/Core/Pipe.h
+++ b/LUFA/Drivers/USB/Core/Pipe.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/PipeStream.h b/LUFA/Drivers/USB/Core/PipeStream.h
index 0712f659..8309cbd4 100644
--- a/LUFA/Drivers/USB/Core/PipeStream.h
+++ b/LUFA/Drivers/USB/Core/PipeStream.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/StdDescriptors.h b/LUFA/Drivers/USB/Core/StdDescriptors.h
index 6bece18a..cee2d5ec 100644
--- a/LUFA/Drivers/USB/Core/StdDescriptors.h
+++ b/LUFA/Drivers/USB/Core/StdDescriptors.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -104,20 +104,19 @@
/** \name USB Configuration Descriptor Attribute Masks */
//@{
- /** Can be masked with other configuration descriptor attributes for a \ref USB_Descriptor_Configuration_Header_t
- * descriptor's ConfigAttributes value to indicate that the specified configuration can draw its power
- * from the host's VBUS line.
+ /** Mask for the reserved bit in the Configuration Descriptor's \c ConfigAttributes field, which must be set on all
+ * devices for historial purposes.
*/
- #define USB_CONFIG_ATTR_BUSPOWERED 0x80
+ #define USB_CONFIG_ATTR_RESERVED 0x80
/** Can be masked with other configuration descriptor attributes for a \ref USB_Descriptor_Configuration_Header_t
- * descriptor's ConfigAttributes value to indicate that the specified configuration can draw its power
+ * descriptor's \c ConfigAttributes value to indicate that the specified configuration can draw its power
* from the device's own power source.
*/
#define USB_CONFIG_ATTR_SELFPOWERED 0x40
/** Can be masked with other configuration descriptor attributes for a \ref USB_Descriptor_Configuration_Header_t
- * descriptor's ConfigAttributes value to indicate that the specified configuration supports the
+ * descriptor's \c ConfigAttributes value to indicate that the specified configuration supports the
* remote wakeup feature of the USB standard, allowing a suspended USB device to wake up the host upon
* request.
*/
@@ -127,28 +126,28 @@
/** \name Endpoint Descriptor Attribute Masks */
//@{
/** Can be masked with other endpoint descriptor attributes for a \ref USB_Descriptor_Endpoint_t descriptor's
- * Attributes value to indicate that the specified endpoint is not synchronized.
+ * \c Attributes value to indicate that the specified endpoint is not synchronized.
*
* \see The USB specification for more details on the possible Endpoint attributes.
*/
#define ENDPOINT_ATTR_NO_SYNC (0 << 2)
/** Can be masked with other endpoint descriptor attributes for a \ref USB_Descriptor_Endpoint_t descriptor's
- * Attributes value to indicate that the specified endpoint is asynchronous.
+ * \c Attributes value to indicate that the specified endpoint is asynchronous.
*
* \see The USB specification for more details on the possible Endpoint attributes.
*/
#define ENDPOINT_ATTR_ASYNC (1 << 2)
/** Can be masked with other endpoint descriptor attributes for a \ref USB_Descriptor_Endpoint_t descriptor's
- * Attributes value to indicate that the specified endpoint is adaptive.
+ * \c Attributes value to indicate that the specified endpoint is adaptive.
*
* \see The USB specification for more details on the possible Endpoint attributes.
*/
#define ENDPOINT_ATTR_ADAPTIVE (2 << 2)
/** Can be masked with other endpoint descriptor attributes for a \ref USB_Descriptor_Endpoint_t descriptor's
- * Attributes value to indicate that the specified endpoint is synchronized.
+ * \c Attributes value to indicate that the specified endpoint is synchronized.
*
* \see The USB specification for more details on the possible Endpoint attributes.
*/
@@ -158,21 +157,21 @@
/** \name Endpoint Descriptor Usage Masks */
//@{
/** Can be masked with other endpoint descriptor attributes for a \ref USB_Descriptor_Endpoint_t descriptor's
- * Attributes value to indicate that the specified endpoint is used for data transfers.
+ * \c Attributes value to indicate that the specified endpoint is used for data transfers.
*
* \see The USB specification for more details on the possible Endpoint usage attributes.
*/
#define ENDPOINT_USAGE_DATA (0 << 4)
/** Can be masked with other endpoint descriptor attributes for a \ref USB_Descriptor_Endpoint_t descriptor's
- * Attributes value to indicate that the specified endpoint is used for feedback.
+ * \c Attributes value to indicate that the specified endpoint is used for feedback.
*
* \see The USB specification for more details on the possible Endpoint usage attributes.
*/
#define ENDPOINT_USAGE_FEEDBACK (1 << 4)
/** Can be masked with other endpoint descriptor attributes for a \ref USB_Descriptor_Endpoint_t descriptor's
- * Attributes value to indicate that the specified endpoint is used for implicit feedback.
+ * \c Attributes value to indicate that the specified endpoint is used for implicit feedback.
*
* \see The USB specification for more details on the possible Endpoint usage attributes.
*/
@@ -432,8 +431,8 @@
uint8_t ConfigurationNumber; /**< Configuration index of the current configuration. */
uint8_t ConfigurationStrIndex; /**< Index of a string descriptor describing the configuration. */
- uint8_t ConfigAttributes; /**< Configuration attributes, comprised of a mask of zero or
- * more USB_CONFIG_ATTR_* masks.
+ uint8_t ConfigAttributes; /**< Configuration attributes, comprised of a mask of \c USB_CONFIG_ATTR_* masks.
+ * On all devices, this should include USB_CONFIG_ATTR_RESERVED at a minimum.
*/
uint8_t MaxPowerConsumption; /**< Maximum power consumption of the device while in the
@@ -463,8 +462,8 @@
uint8_t bNumInterfaces; /**< Total number of interfaces in the configuration. */
uint8_t bConfigurationValue; /**< Configuration index of the current configuration. */
uint8_t iConfiguration; /**< Index of a string descriptor describing the configuration. */
- uint8_t bmAttributes; /**< Configuration attributes, comprised of a mask of zero or
- * more USB_CONFIG_ATTR_* masks.
+ uint8_t bmAttributes; /**< Configuration attributes, comprised of a mask of \c USB_CONFIG_ATTR_* masks.
+ * On all devices, this should include USB_CONFIG_ATTR_RESERVED at a minimum.
*/
uint8_t bMaxPower; /**< Maximum power consumption of the device while in the
* current configuration, calculated by the \ref USB_CONFIG_POWER_MA()
diff --git a/LUFA/Drivers/USB/Core/StdRequestType.h b/LUFA/Drivers/USB/Core/StdRequestType.h
index 47d6ae1d..c94da4d4 100644
--- a/LUFA/Drivers/USB/Core/StdRequestType.h
+++ b/LUFA/Drivers/USB/Core/StdRequestType.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -68,14 +68,14 @@
/** Mask for the request type parameter, to indicate the direction of the request data (Host to Device
* or Device to Host). The result of this mask should then be compared to the request direction masks.
*
- * \see REQDIR_* macros for masks indicating the request data direction.
+ * \see \c REQDIR_* macros for masks indicating the request data direction.
*/
#define CONTROL_REQTYPE_DIRECTION 0x80
/** Mask for the request type parameter, to indicate the type of request (Device, Class or Vendor
* Specific). The result of this mask should then be compared to the request type masks.
*
- * \see REQTYPE_* macros for masks indicating the request type.
+ * \see \c REQTYPE_* macros for masks indicating the request type.
*/
#define CONTROL_REQTYPE_TYPE 0x60
@@ -83,7 +83,7 @@
* Endpoint or Other). The result of this mask should then be compared to the request recipient
* masks.
*
- * \see REQREC_* macros for masks indicating the request recipient.
+ * \see \c REQREC_* macros for masks indicating the request recipient.
*/
#define CONTROL_REQTYPE_RECIPIENT 0x1F
diff --git a/LUFA/Drivers/USB/Core/UC3/Device_UC3.c b/LUFA/Drivers/USB/Core/UC3/Device_UC3.c
index f98ecedc..b30edf03 100644
--- a/LUFA/Drivers/USB/Core/UC3/Device_UC3.c
+++ b/LUFA/Drivers/USB/Core/UC3/Device_UC3.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/UC3/Device_UC3.h b/LUFA/Drivers/USB/Core/UC3/Device_UC3.h
index e79c3b09..0781d43d 100644
--- a/LUFA/Drivers/USB/Core/UC3/Device_UC3.h
+++ b/LUFA/Drivers/USB/Core/UC3/Device_UC3.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.c b/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.c
index 2bf143d3..c099c875 100644
--- a/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.c
+++ b/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.h b/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.h
index 3706b292..335e1978 100644
--- a/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.h
+++ b/LUFA/Drivers/USB/Core/UC3/EndpointStream_UC3.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.c b/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.c
index 0509494f..3ad806db 100644
--- a/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.c
+++ b/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h b/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h
index 85f04afb..2c151bab 100644
--- a/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h
+++ b/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/UC3/Host_UC3.c b/LUFA/Drivers/USB/Core/UC3/Host_UC3.c
index dde5b1b0..9d302661 100644
--- a/LUFA/Drivers/USB/Core/UC3/Host_UC3.c
+++ b/LUFA/Drivers/USB/Core/UC3/Host_UC3.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -80,6 +80,11 @@ void USB_Host_ProcessNextHostState(void)
USB_Host_VBUS_Auto_Enable();
USB_Host_VBUS_Auto_On();
+ #if defined(NO_AUTO_VBUS_MANAGEMENT)
+ USB_Host_VBUS_Manual_Enable();
+ USB_Host_VBUS_Manual_On();
+ #endif
+
USB_HostState = HOST_STATE_Powered_WaitForConnect;
}
@@ -219,7 +224,7 @@ uint8_t USB_Host_WaitMS(uint8_t MS)
break;
}
- if (Pipe_IsError() == true)
+ if (Pipe_IsError())
{
Pipe_ClearError();
ErrorCode = HOST_WAITERROR_PipeError;
@@ -227,7 +232,7 @@ uint8_t USB_Host_WaitMS(uint8_t MS)
break;
}
- if (Pipe_IsStalled() == true)
+ if (Pipe_IsStalled())
{
Pipe_ClearStall();
ErrorCode = HOST_WAITERROR_SetupStalled;
diff --git a/LUFA/Drivers/USB/Core/UC3/Host_UC3.h b/LUFA/Drivers/USB/Core/UC3/Host_UC3.h
index 60d9b7f6..5f998379 100644
--- a/LUFA/Drivers/USB/Core/UC3/Host_UC3.h
+++ b/LUFA/Drivers/USB/Core/UC3/Host_UC3.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.c b/LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.c
index 3b8267ac..0d40f921 100644
--- a/LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.c
+++ b/LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.h b/LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.h
index e7b0e430..3f211182 100644
--- a/LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.h
+++ b/LUFA/Drivers/USB/Core/UC3/PipeStream_UC3.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c b/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c
index f447a173..dbd03c7c 100644
--- a/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c
+++ b/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -58,6 +58,7 @@ bool Pipe_ConfigurePipe(const uint8_t Number,
((uint32_t)Type << AVR32_USBB_PTYPE_OFFSET) |
((uint32_t)Token << AVR32_USBB_PTOKEN_OFFSET) |
((uint32_t)Banks << AVR32_USBB_PBK_OFFSET) |
+ Pipe_BytesToEPSizeMask(Size) |
((EndpointNumber & PIPE_EPNUM_MASK) << AVR32_USBB_PEPNUM_OFFSET));
Pipe_SetInfiniteINRequests();
@@ -76,11 +77,12 @@ bool Pipe_ConfigurePipe(const uint8_t Number,
((uint32_t)Type << AVR32_USBB_PTYPE_OFFSET) |
((uint32_t)Token << AVR32_USBB_PTOKEN_OFFSET) |
((uint32_t)Banks << AVR32_USBB_PBK_OFFSET) |
+ Pipe_BytesToEPSizeMask(Size) |
((EndpointNumber & PIPE_EPNUM_MASK) << AVR32_USBB_PEPNUM_OFFSET));
}
else
{
- UPCFG0Temp = (&AVR32_USBB.upcfg0)[PNum]
+ UPCFG0Temp = (&AVR32_USBB.upcfg0)[PNum];
}
if (!(UPCFG0Temp & AVR32_USBB_ALLOC_MASK))
diff --git a/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h b/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h
index a047198c..1433d8ca 100644
--- a/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h
+++ b/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -389,7 +389,7 @@
static inline bool Pipe_HasPipeInterrupted(const uint8_t PipeNumber) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
static inline bool Pipe_HasPipeInterrupted(const uint8_t PipeNumber)
{
- return ((AVR32_USBB.uhint & (AVR32_USBB_P0INTES_MASK << USB_Pipe_SelectedPipe)) ? true : false);
+ return ((AVR32_USBB.uhint & (AVR32_USBB_P0INTES_MASK << PipeNumber)) ? true : false);
}
/** Unfreezes the selected pipe, allowing it to communicate with an attached device. */
diff --git a/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_R.c b/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_R.c
index 55d137ba..4216d563 100644
--- a/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_R.c
+++ b/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_R.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_W.c b/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_W.c
index 36685f0c..1c0d5260 100644
--- a/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_W.c
+++ b/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_W.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_RW.c b/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_RW.c
index 7ed192df..bc685ab6 100644
--- a/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_RW.c
+++ b/LUFA/Drivers/USB/Core/UC3/Template/Template_Endpoint_RW.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/UC3/Template/Template_Pipe_RW.c b/LUFA/Drivers/USB/Core/UC3/Template/Template_Pipe_RW.c
index daba216a..a49102b4 100644
--- a/LUFA/Drivers/USB/Core/UC3/Template/Template_Pipe_RW.c
+++ b/LUFA/Drivers/USB/Core/UC3/Template/Template_Pipe_RW.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/UC3/USBController_UC3.c b/LUFA/Drivers/USB/Core/UC3/USBController_UC3.c
index 965971fc..a9a6d35d 100644
--- a/LUFA/Drivers/USB/Core/UC3/USBController_UC3.c
+++ b/LUFA/Drivers/USB/Core/UC3/USBController_UC3.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -134,6 +134,10 @@ void USB_ResetInterface(void)
}
else if (USB_CurrentMode == USB_MODE_Host)
{
+ #if defined(INVERTED_VBUS_ENABLE_LINE)
+ AVR32_USBB.USBCON.vbuspol = true;
+ #endif
+
#if defined(USB_CAN_BE_HOST)
AVR32_USBB.USBCON.uimod = false;
diff --git a/LUFA/Drivers/USB/Core/UC3/USBController_UC3.h b/LUFA/Drivers/USB/Core/UC3/USBController_UC3.h
index 3f7ec5fb..0d25ebeb 100644
--- a/LUFA/Drivers/USB/Core/UC3/USBController_UC3.h
+++ b/LUFA/Drivers/USB/Core/UC3/USBController_UC3.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.c b/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.c
index 3487087a..a62646ae 100644
--- a/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.c
+++ b/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.h b/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.h
index bf6d172a..c4dfab39 100644
--- a/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.h
+++ b/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -350,15 +350,13 @@
#endif
/* Public Interface - May be used in end-application: */
- /* ISR Prototypes: */
+ /* Function Prototypes: */
#if defined(__DOXYGEN__)
/** Interrupt service routine handler for the USB controller ISR group. This interrupt routine <b>must</b> be
* linked to the entire USB controller ISR vector group inside the AVR32's interrupt controller peripheral,
* using the user application's preferred USB controller driver.
*/
void USB_GEN_vect(void);
- #else
- ISR(USB_GEN_vect);
#endif
/* Disable C linkage for C++ Compilers: */
diff --git a/LUFA/Drivers/USB/Core/USBController.h b/LUFA/Drivers/USB/Core/USBController.h
index 1e4f326d..a91e18c2 100644
--- a/LUFA/Drivers/USB/Core/USBController.h
+++ b/LUFA/Drivers/USB/Core/USBController.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/USBInterrupt.h b/LUFA/Drivers/USB/Core/USBInterrupt.h
index 3f88071a..05b83a15 100644
--- a/LUFA/Drivers/USB/Core/USBInterrupt.h
+++ b/LUFA/Drivers/USB/Core/USBInterrupt.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/USBMode.h b/LUFA/Drivers/USB/Core/USBMode.h
index 00130778..bc2f86dd 100644
--- a/LUFA/Drivers/USB/Core/USBMode.h
+++ b/LUFA/Drivers/USB/Core/USBMode.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -209,7 +209,8 @@
#elif (defined(__AVR_ATxmega256A3BU__))
#define USB_SERIES_A3BU_XMEGA
#define USB_CAN_BE_DEVICE
- #elif (defined(__AVR_ATxmega16A4U__) || defined(__AVR_ATxmega32A4U__))
+ #elif (defined(__AVR_ATxmega16A4U__) || defined(__AVR_ATxmega32A4U__) || \
+ defined(__AVR_ATxmega64A4U__) || defined(__AVR_ATxmega128A4U__))
#define USB_SERIES_A4U_XMEGA
#define USB_CAN_BE_DEVICE
#elif (defined(__AVR_ATxmega128B1__) || defined(__AVR_ATxmega64B1__))
diff --git a/LUFA/Drivers/USB/Core/USBTask.c b/LUFA/Drivers/USB/Core/USBTask.c
index c0cd7119..b0b6914a 100644
--- a/LUFA/Drivers/USB/Core/USBTask.c
+++ b/LUFA/Drivers/USB/Core/USBTask.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -52,8 +52,10 @@ void USB_USBTask(void)
#else
if (USB_CurrentMode == USB_MODE_Device)
USB_DeviceTask();
+ #if defined(USB_CAN_BE_HOST)
else if (USB_CurrentMode == USB_MODE_Host)
USB_HostTask();
+ #endif
#endif
}
diff --git a/LUFA/Drivers/USB/Core/USBTask.h b/LUFA/Drivers/USB/Core/USBTask.h
index 53eb719f..bd367b24 100644
--- a/LUFA/Drivers/USB/Core/USBTask.h
+++ b/LUFA/Drivers/USB/Core/USBTask.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.c b/LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.c
index e00afd1c..fa1b474a 100644
--- a/LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.c
+++ b/LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.h b/LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.h
index 8fefbcb6..3712a7e4 100644
--- a/LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.h
+++ b/LUFA/Drivers/USB/Core/XMEGA/Device_XMEGA.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.c b/LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.c
index feaffd63..ce19dcac 100644
--- a/LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.c
+++ b/LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.h b/LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.h
index 72a88309..711d7a3a 100644
--- a/LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.h
+++ b/LUFA/Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.c b/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.c
index e7378146..662f4a3c 100644
--- a/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.c
+++ b/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -39,10 +39,10 @@
uint8_t USB_Device_ControlEndpointSize = ENDPOINT_CONTROLEP_DEFAULT_SIZE;
#endif
-Endpoint_FIFOPair_t USB_Endpoint_FIFOs[ENDPOINT_DETAILS_MAXEP];
+Endpoint_FIFOPair_t USB_Endpoint_FIFOs[ENDPOINT_TOTAL_ENDPOINTS];
-volatile uint8_t USB_Endpoint_SelectedEndpoint;
-volatile USB_EP_t* USB_Endpoint_SelectedHandle;
+volatile uint8_t USB_Endpoint_SelectedEndpoint;
+volatile USB_EP_t* USB_Endpoint_SelectedHandle;
volatile Endpoint_FIFO_t* USB_Endpoint_SelectedFIFO;
bool Endpoint_ConfigureEndpoint_PRV(const uint8_t Number,
@@ -66,8 +66,11 @@ bool Endpoint_ConfigureEndpoint_PRV(const uint8_t Number,
void Endpoint_ClearEndpoints(void)
{
- for (uint8_t EPNum = 0; EPNum < (ENDPOINT_TOTAL_ENDPOINTS * 2); EPNum++)
- ((USB_EP_t*)&USB_EndpointTable)[EPNum].CTRL = 0;
+ for (uint8_t EPNum = 0; EPNum < ENDPOINT_TOTAL_ENDPOINTS; EPNum++)
+ {
+ USB_EndpointTable.Endpoints[EPNum].IN.CTRL = 0;
+ USB_EndpointTable.Endpoints[EPNum].OUT.CTRL = 0;
+ }
}
void Endpoint_ClearStatusStage(void)
diff --git a/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h b/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h
index 495aa970..8cea092d 100644
--- a/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h
+++ b/LUFA/Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -391,7 +391,10 @@
static inline bool Endpoint_IsReadWriteAllowed(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
static inline bool Endpoint_IsReadWriteAllowed(void)
{
- return (USB_Endpoint_SelectedFIFO->Position < USB_Endpoint_SelectedFIFO->Length);
+ if (USB_Endpoint_SelectedEndpoint & ENDPOINT_DIR_IN)
+ return (USB_Endpoint_SelectedFIFO->Position < USB_Endpoint_SelectedFIFO->Length);
+ else
+ return (USB_Endpoint_SelectedFIFO->Position > 0);
}
/** Determines if the currently selected endpoint is configured.
@@ -426,6 +429,7 @@
static inline bool Endpoint_HasEndpointInterrupted(const uint8_t EndpointNumber) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
static inline bool Endpoint_HasEndpointInterrupted(const uint8_t EndpointNumber)
{
+ (void)EndpointNumber;
return 0; // TODO
}
diff --git a/LUFA/Drivers/USB/Core/XMEGA/Host_XMEGA.c b/LUFA/Drivers/USB/Core/XMEGA/Host_XMEGA.c
index b9d9d769..b2ec9717 100644
--- a/LUFA/Drivers/USB/Core/XMEGA/Host_XMEGA.c
+++ b/LUFA/Drivers/USB/Core/XMEGA/Host_XMEGA.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/XMEGA/PipeStream_XMEGA.c b/LUFA/Drivers/USB/Core/XMEGA/PipeStream_XMEGA.c
index b9d9d769..b2ec9717 100644
--- a/LUFA/Drivers/USB/Core/XMEGA/PipeStream_XMEGA.c
+++ b/LUFA/Drivers/USB/Core/XMEGA/PipeStream_XMEGA.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/XMEGA/Pipe_XMEGA.c b/LUFA/Drivers/USB/Core/XMEGA/Pipe_XMEGA.c
index b9d9d769..b2ec9717 100644
--- a/LUFA/Drivers/USB/Core/XMEGA/Pipe_XMEGA.c
+++ b/LUFA/Drivers/USB/Core/XMEGA/Pipe_XMEGA.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_R.c b/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_R.c
index 55d137ba..d0d684d0 100644
--- a/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_R.c
+++ b/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_R.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -35,6 +35,8 @@ uint8_t TEMPLATE_FUNC_NAME (void* const Buffer,
{
uint8_t* DataStream = ((uint8_t*)Buffer + TEMPLATE_BUFFER_OFFSET(Length));
+ Endpoint_SelectEndpoint(USB_Endpoint_SelectedEndpoint & ~ENDPOINT_DIR_IN);
+
if (!(Length))
Endpoint_ClearOUT();
diff --git a/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_W.c b/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_W.c
index 36685f0c..59252b02 100644
--- a/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_W.c
+++ b/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_W.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -36,6 +36,8 @@ uint8_t TEMPLATE_FUNC_NAME (const void* const Buffer,
uint8_t* DataStream = ((uint8_t*)Buffer + TEMPLATE_BUFFER_OFFSET(Length));
bool LastPacketFull = false;
+ Endpoint_SelectEndpoint(USB_Endpoint_SelectedEndpoint | ENDPOINT_DIR_IN);
+
if (Length > USB_ControlRequest.wLength)
Length = USB_ControlRequest.wLength;
else if (!(Length))
diff --git a/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_RW.c b/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_RW.c
index 7ed192df..bc685ab6 100644
--- a/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_RW.c
+++ b/LUFA/Drivers/USB/Core/XMEGA/Template/Template_Endpoint_RW.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.c b/LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.c
index 1d678fb2..a7fa9d17 100644
--- a/LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.c
+++ b/LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.h b/LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.h
index 77d422a8..60f3e127 100644
--- a/LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.h
+++ b/LUFA/Drivers/USB/Core/XMEGA/USBController_XMEGA.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.c b/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.c
index 2dce0e64..27ffb065 100644
--- a/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.c
+++ b/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -90,6 +90,9 @@ ISR(USB_BUSEVENT_vect)
USB_DeviceState = DEVICE_STATE_Default;
USB_Device_ConfigurationNumber = 0;
+ USB_Device_SetDeviceAddress(0);
+
+ Endpoint_ClearEndpoints();
Endpoint_ConfigureEndpoint(ENDPOINT_CONTROLEP, EP_TYPE_CONTROL,
ENDPOINT_DIR_OUT, USB_Device_ControlEndpointSize,
ENDPOINT_BANK_SINGLE);
diff --git a/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.h b/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.h
index c2436cae..6a07626a 100644
--- a/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.h
+++ b/LUFA/Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -73,10 +73,10 @@
switch (Interrupt)
{
case USB_INT_BUSEVENTI:
- USB.INTCTRLA |= USB_BUSEVIE_bm;
+ USB.INTCTRLA |= USB_BUSEVIE_bm;
return;
case USB_INT_SOFI:
- USB.INTCTRLA |= USB_SOFIE_bm;
+ USB.INTCTRLA |= USB_SOFIE_bm;
return;
}
}
diff --git a/LUFA/Drivers/USB/USB.h b/LUFA/Drivers/USB/USB.h
index b6333362..edb16e2b 100644
--- a/LUFA/Drivers/USB/USB.h
+++ b/LUFA/Drivers/USB/USB.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -97,12 +97,12 @@
* <td bgcolor="#00EE00">Yes</td>
* </tr>
* <tr>
- * <td>Audio</td>
+ * <td>Audio 1.0</td>
* <td bgcolor="#00EE00">Yes</td>
* <td bgcolor="#00EE00">Yes</td>
* </tr>
* <tr>
- * <td>CDC</td>
+ * <td>CDC-ACM</td>
* <td bgcolor="#00EE00">Yes</td>
* <td bgcolor="#00EE00">Yes</td>
* </tr>
@@ -158,8 +158,8 @@
* before the class driver is used. Each Device mode Class driver typically contains a set of configuration parameters
* for the endpoint size/number of the associated logical USB interface, plus any class-specific configuration parameters.
*
- * The \c State section of the \c USB_ClassInfo_* structures are designed to be controlled by the Class Drivers only for
- * maintaining the Class Driver instance's state, and should not normally be set by the user application.
+ * \note The \c State section of the \c USB_ClassInfo_* structures are designed to be controlled by the Class Drivers only
+ * for maintaining the Class Driver instance's state, and should not normally be altered by the user application.
*
* The following is an example of a properly initialized instance of the Audio Class Driver structure:
*
@@ -188,10 +188,10 @@
* \code
* void EVENT_USB_Device_ConfigurationChanged(void)
* {
- * LEDs_SetAllLEDs(LEDMASK_USB_READY);
+ * LEDs_SetAllLEDs(LEDMASK_USB_READY);
*
- * if (!(Audio_Device_ConfigureEndpoints(&My_Audio_Interface)))
- * LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
+ * if (!(Audio_Device_ConfigureEndpoints(&My_Audio_Interface)))
+ * LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
* }
* \endcode
*
@@ -210,7 +210,8 @@
*
* for (;;)
* {
- * Create_And_Process_Samples();
+ * if (USB_DeviceState != DEVICE_STATE_Configured)
+ * Create_And_Process_Samples();
*
* Audio_Device_USBTask(&My_Audio_Interface);
* USB_USBTask();
@@ -257,10 +258,10 @@
* before the class driver is used. Each Device mode Class driver typically contains a set of configuration parameters
* for the endpoint size/number of the associated logical USB interface, plus any class-specific configuration parameters.
*
- * The \c State section of the \c USB_ClassInfo_* structures are designed to be controlled by the Class Drivers only for
- * maintaining the Class Driver instance's state, and should not normally be set by the user application.
+ * \note The \c State section of the \c USB_ClassInfo_* structures are designed to be controlled by the Class Drivers only
+ * for maintaining the Class Driver instance's state, and should not normally be altered by the user application.
*
- * The following is an example of a properly initialized instance of the MIDI Class Driver structure:
+ * The following is an example of a properly initialized instance of the MIDI Host Class Driver structure:
*
* \code
* USB_ClassInfo_MIDI_Host_t My_MIDI_Interface =
@@ -277,7 +278,7 @@
* \endcode
*
* To initialize the Class driver instance, the driver's <tt><b>{Class Name}</b>_Host_ConfigurePipes()</tt> function
- * should be called in response to the host state machine entering the \ref HOST_STATE_Addressed state. This function
+ * should be called in response to the \c EVENT_USB_Host_DeviceEnumerationComplete() event firing. This function will
* will return an error code from the class driver's <tt><b>{Class Name}</b>_EnumerationFailure_ErrorCodes_t</tt> enum
* to indicate if the driver successfully initialized the instance and bound it to an interface in the attached device.
* Like all the class driver functions, this function takes in the address of the specific instance you wish to initialize -
@@ -285,40 +286,48 @@
* based Host mode application may look like the following:
*
* \code
- * switch (USB_HostState)
+ * void EVENT_USB_Host_DeviceEnumerationComplete(void)
+ * {
+ * LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING);
+ *
+ * uint16_t ConfigDescriptorSize;
+ * uint8_t ConfigDescriptorData[512];
+ *
+ * if (USB_Host_GetDeviceConfigDescriptor(1, &ConfigDescriptorSize, ConfigDescriptorData,
+ * sizeof(ConfigDescriptorData)) != HOST_GETCONFIG_Successful)
+ * {
+ * LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
+ * return;
+ * }
+ *
+ * if (MIDI_Host_ConfigurePipes(&Keyboard_MIDI_Interface,
+ * ConfigDescriptorSize, ConfigDescriptorData) != MIDI_ENUMERROR_NoError)
+ * {
+ * LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
+ * return;
+ * }
+ *
+ * if (USB_Host_SetDeviceConfiguration(1) != HOST_SENDCONTROL_Successful)
* {
- * case HOST_STATE_Addressed:
- * LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING);
- *
- * uint16_t ConfigDescriptorSize;
- * uint8_t ConfigDescriptorData[512];
- *
- * if (USB_Host_GetDeviceConfigDescriptor(1, &ConfigDescriptorSize, ConfigDescriptorData,
- * sizeof(ConfigDescriptorData)) != HOST_GETCONFIG_Successful)
- * {
- * LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
- * USB_HostState = HOST_STATE_WaitForDeviceRemoval;
- * break;
- * }
- *
- * if (MIDI_Host_ConfigurePipes(&My_MIDI_Interface,
- * ConfigDescriptorSize, ConfigDescriptorData) != MIDI_ENUMERROR_NoError)
- * {
- * LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
- * USB_HostState = HOST_STATE_WaitForDeviceRemoval;
- * break;
- * }
- *
- * // Other state handler code here
+ * LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
+ * return;
+ * }
+ *
+ * LEDs_SetAllLEDs(LEDMASK_USB_READY);
+ * }
* \endcode
*
- * Note that the function also required the device's configuration descriptor so that it can determine which interface
+ * Note that the function also requires the device's configuration descriptor so that it can determine which interface
* in the device to bind to - this can be retrieved as shown in the above fragment using the
* \ref USB_Host_GetDeviceConfigDescriptor() function. If the device does not implement the interface the class driver
* is looking for, if all the matching interfaces are already bound to class driver instances or if an error occurs while
* binding to a device interface (for example, a device endpoint bank larger that the maximum supported bank size is used)
* the configuration will fail.
*
+ * To complete the device enumeration after binding the host mode Class Drivers to the attached device, a call to
+ * \c USB_Host_SetDeviceConfiguration() must be made. If the device configuration is not set within the
+ * \c EVENT_USB_Host_DeviceEnumerationComplete() event, the host still will assume the device enumeration has failed.
+ *
* Once initialized, it is important to maintain the class driver's state by repeatedly calling the Class Driver's
* <tt><b>{Class Name}</b>_Host_USBTask()</tt> function in the main program loop. The exact implementation of this
* function varies between class drivers, and can be used for any internal class driver purpose to maintain each
@@ -334,10 +343,8 @@
*
* for (;;)
* {
- * switch (USB_HostState)
- * {
- * // Host state machine handling here
- * }
+ * if (USB_HostState != HOST_STATE_Configured)
+ * Create_And_Process_Samples();
*
* MIDI_Host_USBTask(&My_Audio_Interface);
* USB_USBTask();
diff --git a/LUFA/Platform/UC3/ClockManagement.h b/LUFA/Platform/UC3/ClockManagement.h
index ef2a1b56..3a46f9d7 100644
--- a/LUFA/Platform/UC3/ClockManagement.h
+++ b/LUFA/Platform/UC3/ClockManagement.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -35,8 +35,8 @@
* of the various clocks within the device to clock the various peripherals.
*/
-/** \ingroup Group_PlatformDrivers
- * \defgroup Group_PlatformDrivers_UC3Clocks UC3 Clock Management Driver - LUFA/Platform/UC3/ClockManagement.h
+/** \ingroup Group_PlatformDrivers_UC3
+ * \defgroup Group_PlatformDrivers_UC3Clocks Clock Management Driver - LUFA/Platform/UC3/ClockManagement.h
* \brief Module Clock Driver for the AVR32 UC3 microcontrollers.
*
* \section Sec_Dependencies Module Source Dependencies
diff --git a/LUFA/Platform/UC3/InterruptManagement.c b/LUFA/Platform/UC3/InterruptManagement.c
index ce2a8199..7d883c63 100644
--- a/LUFA/Platform/UC3/InterruptManagement.c
+++ b/LUFA/Platform/UC3/InterruptManagement.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -28,6 +28,7 @@
this software.
*/
+#define __INCLUDE_FROM_INTMANAGEMENT_C
#include "InterruptManagement.h"
/** Interrupt vector table, containing the ISR to call for each interrupt group */
diff --git a/LUFA/Platform/UC3/InterruptManagement.h b/LUFA/Platform/UC3/InterruptManagement.h
index 6bd7f0ad..8dd1dc3d 100644
--- a/LUFA/Platform/UC3/InterruptManagement.h
+++ b/LUFA/Platform/UC3/InterruptManagement.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -35,8 +35,8 @@
* handlers within the device.
*/
-/** \ingroup Group_PlatformDrivers
- * \defgroup Group_PlatformDrivers_UC3Interrupts UC3 Interrupt Controller Driver - LUFA/Platform/UC3/InterruptManagement.h
+/** \ingroup Group_PlatformDrivers_UC3
+ * \defgroup Group_PlatformDrivers_UC3Interrupts Interrupt Controller Driver - LUFA/Platform/UC3/InterruptManagement.h
* \brief Interrupt Controller Driver for the AVR32 UC3 microcontrollers.
*
* \section Sec_Dependencies Module Source Dependencies
@@ -84,9 +84,11 @@
typedef void (*InterruptHandlerPtr_t)(void);
/* External Variables: */
- extern const void EVBA_Table;
- extern const uint32_t Autovector_Table[];
+ #if defined(__INCLUDE_FROM_INTMANAGEMENT_C)
+ extern const void EVBA_Table;
+ #endif
extern InterruptHandlerPtr_t InterruptHandlers[AVR32_INTC_NUM_INT_GRPS];
+ extern const uint32_t Autovector_Table[];
#endif
/* Public Interface - May be used in end-application: */
diff --git a/LUFA/Platform/XMEGA/ClockManagement.h b/LUFA/Platform/XMEGA/ClockManagement.h
index 20606a11..20fb6464 100644
--- a/LUFA/Platform/XMEGA/ClockManagement.h
+++ b/LUFA/Platform/XMEGA/ClockManagement.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -35,8 +35,8 @@
* of the various clocks within the device to clock the various peripherals.
*/
-/** \ingroup Group_PlatformDrivers
- * \defgroup Group_PlatformDrivers_XMEGAClocks AVR USB XMEGA Clock Management Driver - LUFA/Platform/XMEGA/ClockManagement.h
+/** \ingroup Group_PlatformDrivers_XMEGA
+ * \defgroup Group_PlatformDrivers_XMEGAClocks Clock Management Driver - LUFA/Platform/XMEGA/ClockManagement.h
* \brief Module Clock Driver for the AVR USB XMEGA microcontrollers.
*
* \section Sec_Dependencies Module Source Dependencies
@@ -323,14 +323,11 @@
* and ready for use before this function is called.
*
* \param[in] Source Clock source for the CPU core, a value from \ref XMEGA_System_ClockSource_t.
- * \param[in] SourceFreq Frequency of the CPU core's clock source, in Hz.
*
* \return Boolean \c true if the CPU core clock was sucessfully altered, \c false if invalid parameters specified.
*/
- static inline bool XMEGACLK_SetCPUClockSource(const uint8_t Source,
- const uint32_t SourceFreq) ATTR_ALWAYS_INLINE;
- static inline bool XMEGACLK_SetCPUClockSource(const uint8_t Source,
- const uint32_t SourceFreq)
+ static inline bool XMEGACLK_SetCPUClockSource(const uint8_t Source) ATTR_ALWAYS_INLINE;
+ static inline bool XMEGACLK_SetCPUClockSource(const uint8_t Source)
{
uint8_t ClockSourceMask = 0;
diff --git a/LUFA/Scheduler/Scheduler.c b/LUFA/Scheduler/Scheduler.c
index 56e1cf41..b8990edf 100644
--- a/LUFA/Scheduler/Scheduler.c
+++ b/LUFA/Scheduler/Scheduler.c
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Scheduler/Scheduler.h b/LUFA/Scheduler/Scheduler.h
index 26221868..23baebd1 100644
--- a/LUFA/Scheduler/Scheduler.h
+++ b/LUFA/Scheduler/Scheduler.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
diff --git a/LUFA/Version.h b/LUFA/Version.h
index d8d74028..ee0773a3 100644
--- a/LUFA/Version.h
+++ b/LUFA/Version.h
@@ -1,13 +1,13 @@
/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -43,10 +43,10 @@
/* Public Interface - May be used in end-application: */
/* Macros: */
/** Indicates the version number of the library, as an integer. */
- #define LUFA_VERSION_INTEGER 0x000000
+ #define LUFA_VERSION_INTEGER 0x120219
/** Indicates the version number of the library, as a string. */
- #define LUFA_VERSION_STRING "000000"
+ #define LUFA_VERSION_STRING "120219"
#endif