From bc14c1a7f61713128819f12fcdcc9ec10ff404ab Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Tue, 25 Oct 2011 04:28:22 +0000 Subject: [PATCH] Update XMEGA platform clock management example code to suit the currently released silicon. Cleanups to the UC3 endpoint/pipe multi byte read code. --- LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h | 12 ++++++------ LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h | 12 ++++++------ LUFA/Platform/XMEGA/ClockManagement.h | 24 ++++++++++++------------ 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h b/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h index 8bbb605b56..3fd0d4c83e 100644 --- a/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h +++ b/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h @@ -668,10 +668,10 @@ static inline uint16_t Endpoint_Read_16_LE(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE; static inline uint16_t Endpoint_Read_16_LE(void) { - uint16_t Byte1 = *(USB_EndpointFIFOPos[USB_SelectedEndpoint]++); uint16_t Byte0 = *(USB_EndpointFIFOPos[USB_SelectedEndpoint]++); + uint16_t Byte1 = *(USB_EndpointFIFOPos[USB_SelectedEndpoint]++); - return ((Byte0 << 8) | Byte1); + return ((Byte1 << 8) | Byte0); } /** Reads two bytes from the currently selected endpoint's bank in big endian format, for OUT @@ -743,12 +743,12 @@ static inline uint32_t Endpoint_Read_32_LE(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE; static inline uint32_t Endpoint_Read_32_LE(void) { - uint32_t Byte3 = *(USB_EndpointFIFOPos[USB_SelectedEndpoint]++); - uint32_t Byte2 = *(USB_EndpointFIFOPos[USB_SelectedEndpoint]++); - uint32_t Byte1 = *(USB_EndpointFIFOPos[USB_SelectedEndpoint]++); uint32_t Byte0 = *(USB_EndpointFIFOPos[USB_SelectedEndpoint]++); + uint32_t Byte1 = *(USB_EndpointFIFOPos[USB_SelectedEndpoint]++); + uint32_t Byte2 = *(USB_EndpointFIFOPos[USB_SelectedEndpoint]++); + uint32_t Byte3 = *(USB_EndpointFIFOPos[USB_SelectedEndpoint]++); - return ((Byte0 << 24) | (Byte1 << 16) | (Byte2 << 8) | Byte3); + return ((Byte3 << 24) | (Byte2 << 16) | (Byte1 << 8) | Byte0); } /** Reads four bytes from the currently selected endpoint's bank in big endian format, for OUT diff --git a/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h b/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h index 25957f27a1..26346e95ab 100644 --- a/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h +++ b/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h @@ -662,10 +662,10 @@ static inline uint16_t Pipe_Read_16_LE(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE; static inline uint16_t Pipe_Read_16_LE(void) { - uint16_t Byte1 = *(USB_PipeFIFOPos[USB_SelectedPipe]++); uint16_t Byte0 = *(USB_PipeFIFOPos[USB_SelectedPipe]++); + uint16_t Byte1 = *(USB_PipeFIFOPos[USB_SelectedPipe]++); - return ((Byte0 << 8) | Byte1); + return ((Byte1 << 8) | Byte0); } /** Reads two bytes from the currently selected pipe's bank in big endian format, for OUT @@ -737,12 +737,12 @@ static inline uint32_t Pipe_Read_32_LE(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE; static inline uint32_t Pipe_Read_32_LE(void) { - uint32_t Byte3 = *(USB_PipeFIFOPos[USB_SelectedPipe]++); - uint32_t Byte2 = *(USB_PipeFIFOPos[USB_SelectedPipe]++); - uint32_t Byte1 = *(USB_PipeFIFOPos[USB_SelectedPipe]++); uint32_t Byte0 = *(USB_PipeFIFOPos[USB_SelectedPipe]++); + uint32_t Byte1 = *(USB_PipeFIFOPos[USB_SelectedPipe]++); + uint32_t Byte2 = *(USB_PipeFIFOPos[USB_SelectedPipe]++); + uint32_t Byte3 = *(USB_PipeFIFOPos[USB_SelectedPipe]++); - return ((Byte0 << 24) | (Byte1 << 16) | (Byte2 << 8) | Byte3); + return ((Byte3 << 24) | (Byte2 << 16) | (Byte1 << 8) | Byte0); } /** Reads four bytes from the currently selected pipe's bank in big endian format, for OUT diff --git a/LUFA/Platform/XMEGA/ClockManagement.h b/LUFA/Platform/XMEGA/ClockManagement.h index 04b91e002a..18d7c631eb 100644 --- a/LUFA/Platform/XMEGA/ClockManagement.h +++ b/LUFA/Platform/XMEGA/ClockManagement.h @@ -49,18 +49,18 @@ * * Usage Example: * \code - * #include - * - * void main(void) - * { - * // Start the internal 32MHz RC oscillator and switch the CPU core to run from it - * XMEGACLK_StartInternalOscillator(CLOCK_SRC_INT_RC32MHZ); - * XMEGACLK_SetCPUClockSource(CLOCK_SRC_INT_RC32MHZ, F_CPU); - * - * // Start the external oscillator and multiply up the frequency - * XMEGACLK_StartExternalOscillator(EXOSC_FREQ_9MHZ_MAX, EXOSC_START_1KCLK); - * XMEGACLK_StartPLL(CLOCK_SRC_XOSC, 8000000, F_USB); - * } + * #include + * + * void main(void) + * { + * // Start the PLL to multiply the 2MHz RC oscillator to 32MHz and switch the CPU core to run from it + * XMEGACLK_StartPLL(CLOCK_SRC_INT_RC2MHZ, 2000000, 32000000); + * XMEGACLK_SetCPUClockSource(CLOCK_SRC_PLL, F_CPU); + * + * // Start the 32MHz internal RC oscillator and start the DFLL to increase it to 48MHz using the USB SOF as a reference + * XMEGACLK_StartInternalOscillator(CLOCK_SRC_INT_RC32MHZ); + * XMEGACLK_StartDFLL(CLOCK_SRC_INT_RC32MHZ, DFLL_REF_INT_USBSOF, 48000000); + * } * \endcode * * @{