From 5acf23b25465b82e5516510ee45aa9ed15178ad5 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Thu, 20 Aug 2009 07:21:43 +0000 Subject: Renamed Projects/Unfinished to Projects/Incomplete for consistancy. --- Projects/Incomplete/AVRISP/AVRISP.c | 120 ++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 Projects/Incomplete/AVRISP/AVRISP.c (limited to 'Projects/Incomplete/AVRISP/AVRISP.c') diff --git a/Projects/Incomplete/AVRISP/AVRISP.c b/Projects/Incomplete/AVRISP/AVRISP.c new file mode 100644 index 000000000..0b101247f --- /dev/null +++ b/Projects/Incomplete/AVRISP/AVRISP.c @@ -0,0 +1,120 @@ +/* + LUFA Library + Copyright (C) Dean Camera, 2009. + + dean [at] fourwalledcubicle [dot] com + www.fourwalledcubicle.com +*/ + +/* + Copyright 2009 Dean Camera (dean [at] fourwalledcubicle [dot] com) + + Permission to use, copy, modify, and distribute this software + and its documentation for any purpose and without fee is hereby + granted, provided that the above copyright notice appear in all + copies and that both that the copyright notice and this + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + + The author disclaim all warranties with regard to this + software, including all implied warranties of merchantability + and fitness. In no event shall the author be liable for any + special, indirect or consequential damages or any damages + whatsoever resulting from loss of use, data or profits, whether + in an action of contract, negligence or other tortious action, + arising out of or in connection with the use or performance of + this software. +*/ + +/** \file + * + * Main source file for the AVRISP project. This file contains the main tasks of + * the project and is responsible for the initial application hardware configuration. + */ + +#include "AVRISP.h" + +/** Main program entry point. This routine contains the overall program flow, including initial + * setup of all components and the main program loop. + */ +int main(void) +{ + SetupHardware(); + + V2Params_LoadEEPROMParamValues(); + + printf("AVRISP-MKII Clone\r\n"); + + LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY); + + for (;;) + { + Process_AVRISP_Commands(); + + USB_USBTask(); + } +} + +/** 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); + + /* Hardware Initialization */ + SerialStream_Init(9600, false); + SPI_Init(0, true); + LEDs_Init(); + USB_Init(); +} + +/** Event handler for the library USB Connection event. */ +void EVENT_USB_Device_Connect(void) +{ + LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING); +} + +/** Event handler for the library USB Disconnection event. */ +void EVENT_USB_Device_Disconnect(void) +{ + LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY); +} + +/** Event handler for the library USB Configuration Changed event. */ +void EVENT_USB_Device_ConfigurationChanged(void) +{ + /* Indicate USB connected and ready */ + LEDs_SetAllLEDs(LEDMASK_USB_READY); + + /* Setup AVRISP data Endpoints */ + if (!(Endpoint_ConfigureEndpoint(AVRISP_DATA_EPNUM, EP_TYPE_BULK, + ENDPOINT_DIR_OUT, AVRISP_DATA_EPSIZE, + ENDPOINT_BANK_SINGLE))) + { + LEDs_SetAllLEDs(LEDMASK_USB_ERROR); + } +} + +/** Processes incomming V2 Protocol commands from the host, returning a response when required. */ +void Process_AVRISP_Commands(void) +{ + /* Device must be connected and configured for the task to run */ + if (USB_DeviceState != DEVICE_STATE_Configured) + return; + + Endpoint_SelectEndpoint(AVRISP_DATA_EPNUM); + + /* Check to see if a V2 Protocol command has been received - if not, abort */ + if (!(Endpoint_IsOUTReceived())) + return; + + /* Pass off processing of the V2 Protocol command to the V2 Protocol handler */ + V2Protocol_ProcessCommand(); +} + -- cgit v1.2.3