X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/ea922c98d187eb74c31535afa3334ead5bd50526..bd3f6794dd95c8a8895b3cf25de3332bda603241:/Projects/AVRISP-MKII/AVRISP-MKII.c diff --git a/Projects/AVRISP-MKII/AVRISP-MKII.c b/Projects/AVRISP-MKII/AVRISP-MKII.c index d774b1119..eaf04cb7a 100644 --- a/Projects/AVRISP-MKII/AVRISP-MKII.c +++ b/Projects/AVRISP-MKII/AVRISP-MKII.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 @@ -45,14 +45,14 @@ int main(void) 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(); @@ -63,35 +63,13 @@ int main(void) /** 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(); @@ -115,12 +93,10 @@ void EVENT_USB_Device_ConfigurationChanged(void) 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 */ @@ -136,7 +112,7 @@ void AVRISP_Task(void) 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())