aboutsummaryrefslogtreecommitdiff
path: root/Projects/AVRISP-MKII/AVRISP-MKII.c
diff options
context:
space:
mode:
authorDean <Dean@d5102386-fcda-11dd-9fdb-3debd5008f28>2011-05-29 12:41:14 +0000
committerDean <Dean@d5102386-fcda-11dd-9fdb-3debd5008f28>2011-05-29 12:41:14 +0000
commit25abda400cb3f1da38693b624d34972d7a7337e5 (patch)
tree0add2892e10e4686e555ddf1d98c9110ebb4ba9f /Projects/AVRISP-MKII/AVRISP-MKII.c
parent0304f3303a645127ffe29038850edd1bde110008 (diff)
Added new incomplete AudioInputHost Host LowLevel demo.
Added missing Audio class control request definitions. Added support for the Audio class GET STATUS request so that it is correctly ACKed when sent by the host. git-svn-id: http://lufa-lib.googlecode.com/svn/trunk@1771 d5102386-fcda-11dd-9fdb-3debd5008f28
Diffstat (limited to 'Projects/AVRISP-MKII/AVRISP-MKII.c')
-rw-r--r--Projects/AVRISP-MKII/AVRISP-MKII.c46
1 files changed, 34 insertions, 12 deletions
diff --git a/Projects/AVRISP-MKII/AVRISP-MKII.c b/Projects/AVRISP-MKII/AVRISP-MKII.c
index 654ce547..d774b111 100644
--- a/Projects/AVRISP-MKII/AVRISP-MKII.c
+++ b/Projects/AVRISP-MKII/AVRISP-MKII.c
@@ -45,14 +45,14 @@ int main(void)
V2Protocol_Init();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
- sei();
-
+ GlobalInterruptEnable();
+
for (;;)
{
#if (BOARD == BOARD_USBTINYMKII)
- /* 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);
+ /* 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);
#endif
AVRISP_Task();
@@ -63,13 +63,35 @@ int main(void)
/** Configures the board hardware and chip peripherals for the demo's functionality. */
void SetupHardware(void)
{
- /* Disable watchdog if enabled by bootloader/fuses */
- MCUSR &= ~(1 << WDRF);
- wdt_disable();
-
- /* Disable clock division */
- clock_prescale_set(clock_div_1);
-
+ #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
+
/* Hardware Initialization */
LEDs_Init();
USB_Init();