Minor correction to the UC3 USB clock division formula (thanks to Kim Blomqvist).
authorDean Camera <dean@fourwalledcubicle.com>
Sun, 10 Jun 2012 15:59:09 +0000 (15:59 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Sun, 10 Jun 2012 15:59:09 +0000 (15:59 +0000)
LUFA/Drivers/USB/Core/UC3/USBController_UC3.c

index 9e4e4a2..6a3df6e 100644 (file)
@@ -112,7 +112,7 @@ void USB_ResetInterface(void)
        AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].pllsel = !(USB_Options & USB_OPT_GCLK_SRC_OSC);
        AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].oscsel = !(USB_Options & USB_OPT_GCLK_CHANNEL_0);
        AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].diven  = (F_USB != USB_CLOCK_REQUIRED_FREQ);
-       AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].div    = (F_USB == USB_CLOCK_REQUIRED_FREQ) ? 0 : (uint32_t)(((F_USB / USB_CLOCK_REQUIRED_FREQ) - 1) / 2);
+       AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].div    = (F_USB == USB_CLOCK_REQUIRED_FREQ) ? 0 : (uint32_t)((F_USB / USB_CLOCK_REQUIRED_FREQ / 2) - 1);
        AVR32_PM.GCCTRL[AVR32_PM_GCLK_USBB].cen    = true;
 
        USB_INT_DisableAllInterrupts();