X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/c43605612d3cc18e159bc8e97c3838153ed6a258..0da99447d3e88e83f9977501bee56af5c7aa56c0:/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.h diff --git a/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.h b/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.h index b360a097f..4c0ea8245 100644 --- a/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.h +++ b/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.h @@ -1,13 +1,13 @@ /* LUFA Library - Copyright (C) Dean Camera, 2010. + Copyright (C) Dean Camera, 2012. dean [at] fourwalledcubicle [dot] com www.lufa-lib.org */ /* - Copyright 2010 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 @@ -44,8 +44,10 @@ #include #include - #include "../V2ProtocolParams.h" - + #include "../V2Protocol.h" + #include "ISPProtocol.h" + #include "Config/AppConfig.h" + /* Preprocessor Checks: */ #if ((BOARD == BOARD_XPLAIN) || (BOARD == BOARD_XPLAIN_REV1)) #undef ENABLE_ISP_PROTOCOL @@ -56,7 +58,7 @@ #endif /* Macros: */ - /** Low level device command to issue an extended FLASH address, for devices with other 128KB of FLASH. */ + /** Low level device command to issue an extended FLASH address, for devices with over 128KB of FLASH. */ #define LOAD_EXTENDED_ADDRESS_CMD 0x4D /** Macro to convert an ISP frequency to a number of timer clock cycles for the software SPI driver. */ @@ -72,7 +74,7 @@ void ISPTarget_EnableTargetISP(void); void ISPTarget_DisableTargetISP(void); void ISPTarget_ConfigureRescueClock(void); - void ISPTarget_ConfigureSoftwareISP(const uint8_t SCKDuration); + void ISPTarget_ConfigureSoftwareSPI(const uint8_t SCKDuration); uint8_t ISPTarget_TransferSoftSPIByte(const uint8_t Byte); void ISPTarget_ChangeTargetResetLine(const bool ResetTarget); uint8_t ISPTarget_WaitWhileTargetBusy(void); @@ -104,10 +106,17 @@ */ static inline uint8_t ISPTarget_ReceiveByte(void) { + #if !defined(INVERTED_ISP_MISO) if (HardwareSPIMode) return SPI_ReceiveByte(); else return ISPTarget_TransferSoftSPIByte(0x00); + #else + if (HardwareSPIMode) + return ~SPI_ReceiveByte(); + else + return ~ISPTarget_TransferSoftSPIByte(0x00); + #endif } /** Sends and receives a byte of ISP data to and from the attached target, using the @@ -119,10 +128,17 @@ */ static inline uint8_t ISPTarget_TransferByte(const uint8_t Byte) { + #if !defined(INVERTED_ISP_MISO) if (HardwareSPIMode) return SPI_TransferByte(Byte); else return ISPTarget_TransferSoftSPIByte(Byte); + #else + if (HardwareSPIMode) + return ~SPI_TransferByte(Byte); + else + return ~ISPTarget_TransferSoftSPIByte(Byte); + #endif } #endif