/*
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
V2Protocol_Init();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
- GlobalInterruptEnable();
-
+ sei();
+
for (;;)
{
#if (BOARD == BOARD_USBTINYMKII)
- /* On the USBTINY-MKII board target, there is a secondary LED which indicates the current selected
- power mode - either VBUS, or sourced from the VTARGET pin of the programming connectors */
- LEDs_ChangeLEDs(LEDS_LED3, (PIND & (1 << 0)) ? 0 : LEDS_LED3);
+ /* On the USBTINY-MKII target, there is a secondary LED which indicates the current selected power
+ mode - either VBUS, or sourced from the VTARGET pin of the programming connectors */
+ LEDs_ChangeLEDs(LEDMASK_VBUSPOWER, (PIND & (1 << 0)) ? 0 : LEDMASK_VBUSPOWER);
#endif
AVRISP_Task();
/** Configures the board hardware and chip peripherals for the demo's functionality. */
void SetupHardware(void)
{
- #if (ARCH == ARCH_AVR8)
- /* Disable watchdog if enabled by bootloader/fuses */
- MCUSR &= ~(1 << WDRF);
- wdt_disable();
-
- /* Disable clock division */
- clock_prescale_set(clock_div_1);
- #elif (ARCH == ARCH_UC3)
- /* Select slow startup, external high frequency crystal attached to OSC0 */
- AVR32_PM.OSCCTRL0.mode = 7;
- AVR32_PM.OSCCTRL0.startup = 6;
- AVR32_PM.MCCTRL.osc0en = true;
- while (!(AVR32_PM.POSCSR.osc0rdy));
-
- /* Switch CPU core to use OSC0 as the system clock */
- AVR32_PM.MCCTRL.mcsel = 1;
-
- /* Start PLL1 to feed into the USB generic clock module */
- AVR32_PM.PLL[1].pllmul = (F_USB / F_CPU) ? (((F_USB / F_CPU) - 1) / 2) : 0;
- AVR32_PM.PLL[1].plldiv = 0;
- AVR32_PM.PLL[1].pllosc = 0;
- AVR32_PM.PLL[1].pllen = true;
- while (!(AVR32_PM.POSCSR.lock1));
-
- /* Configure interrupt management peripheral */
-// INTC_Init();
- INTC_RegisterGroupHandler(AVR32_USBB_IRQ, AVR32_INTC_INT0, USB_GEN_vect);
- #endif
-
+ /* Disable watchdog if enabled by bootloader/fuses */
+ MCUSR &= ~(1 << WDRF);
+ wdt_disable();
+
+ /* Disable clock division */
+ clock_prescale_set(clock_div_1);
+
/* Hardware Initialization */
LEDs_Init();
USB_Init();
bool ConfigSuccess = true;
/* Setup AVRISP Data Endpoint(s) */
- ConfigSuccess &= Endpoint_ConfigureEndpoint(AVRISP_DATA_OUT_EPNUM, EP_TYPE_BULK, ENDPOINT_DIR_OUT,
- AVRISP_DATA_EPSIZE, ENDPOINT_BANK_SINGLE);
+ ConfigSuccess &= Endpoint_ConfigureEndpoint(AVRISP_DATA_OUT_EPADDR, EP_TYPE_BULK, AVRISP_DATA_EPSIZE, 1);
#if defined(LIBUSB_DRIVER_COMPAT)
- ConfigSuccess &= Endpoint_ConfigureEndpoint(AVRISP_DATA_IN_EPNUM, EP_TYPE_BULK, ENDPOINT_DIR_IN,
- AVRISP_DATA_EPSIZE, ENDPOINT_BANK_SINGLE);
+ ConfigSuccess &= Endpoint_ConfigureEndpoint(AVRISP_DATA_IN_EPADDR, EP_TYPE_BULK, AVRISP_DATA_EPSIZE, 1);
#endif
/* Indicate endpoint configuration success or failure */
V2Params_UpdateParamValues();
- Endpoint_SelectEndpoint(AVRISP_DATA_OUT_EPNUM);
+ Endpoint_SelectEndpoint(AVRISP_DATA_OUT_EPADDR);
/* Check to see if a V2 Protocol command has been received */
if (Endpoint_IsOUTReceived())