X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/eee252603be67c539f9986cde76454f756e55d95..03f72c5fb0bb9b9997b0433d472752c3afe2468c:/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 3108b16e0..16fd330fa 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, 2012. + Copyright (C) Dean Camera, 2019. dean [at] fourwalledcubicle [dot] com www.lufa-lib.org */ /* - Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com) + Copyright 2019 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 @@ -47,7 +47,7 @@ #include "../V2Protocol.h" #include "ISPProtocol.h" #include "Config/AppConfig.h" - + /* Preprocessor Checks: */ #if ((BOARD == BOARD_XPLAIN) || (BOARD == BOARD_XPLAIN_REV1)) #undef ENABLE_ISP_PROTOCOL @@ -62,13 +62,13 @@ #define LOAD_EXTENDED_ADDRESS_CMD 0x4D /** Macro to convert an ISP frequency to a number of timer clock cycles for the software SPI driver. */ - #define TIMER_COMP(freq) (((F_CPU / 8) / 2 / freq) - 1) + #define ISP_TIMER_COMP(freq) (((F_CPU / 8) / 2 / freq) - 1) /** ISP rescue clock speed in Hz, for clocking targets with incorrectly set fuses. */ #define ISP_RESCUE_CLOCK_SPEED 4000000 /* External Variables: */ - extern bool HardwareSPIMode; + extern bool ISPTarget_HardwareSPIMode; /* Function Prototypes: */ void ISPTarget_EnableTargetISP(void); @@ -93,7 +93,7 @@ */ static inline void ISPTarget_SendByte(const uint8_t Byte) { - if (HardwareSPIMode) + if (ISPTarget_HardwareSPIMode) SPI_SendByte(Byte); else ISPTarget_TransferSoftSPIByte(Byte); @@ -106,16 +106,17 @@ */ static inline uint8_t ISPTarget_ReceiveByte(void) { - #if !defined(INVERTED_ISP_MISO) - if (HardwareSPIMode) - return SPI_ReceiveByte(); + uint8_t ReceivedByte; + + if (ISPTarget_HardwareSPIMode) + ReceivedByte = SPI_ReceiveByte(); else - return ISPTarget_TransferSoftSPIByte(0x00); + ReceivedByte = ISPTarget_TransferSoftSPIByte(0x00); + + #if defined(INVERTED_ISP_MISO) + return ~ReceivedByte; #else - if (HardwareSPIMode) - return ~SPI_ReceiveByte(); - else - return ~ISPTarget_TransferSoftSPIByte(0x00); + return ReceivedByte; #endif } @@ -128,16 +129,17 @@ */ static inline uint8_t ISPTarget_TransferByte(const uint8_t Byte) { - #if !defined(INVERTED_ISP_MISO) - if (HardwareSPIMode) - return SPI_TransferByte(Byte); + uint8_t ReceivedByte; + + if (ISPTarget_HardwareSPIMode) + ReceivedByte = SPI_TransferByte(Byte); else - return ISPTarget_TransferSoftSPIByte(Byte); + ReceivedByte = ISPTarget_TransferSoftSPIByte(Byte); + + #if defined(INVERTED_ISP_MISO) + return ~ReceivedByte; #else - if (HardwareSPIMode) - return ~SPI_TransferByte(Byte); - else - return ~ISPTarget_TransferSoftSPIByte(Byte); + return ReceivedByte; #endif }