X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/efb6c357784af2293a50b3fca9503c3a4c13a9e1..c6f21fde628193c7957d84792215ecaa14d5beb7:/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c diff --git a/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c b/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c index 19b0aa07b..267e51850 100644 --- a/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c +++ b/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c @@ -128,7 +128,7 @@ uint8_t ISPTarget_WaitForProgComplete(const uint8_t ProgrammingMode, const uint1 SPI_SendByte(PollAddress >> 8); SPI_SendByte(PollAddress & 0xFF); } - while ((SPI_TransferByte(0x00) != PollValue) && TimeoutMSRemaining); + while ((SPI_TransferByte(0x00) == PollValue) && TimeoutMSRemaining); if (!(TimeoutMSRemaining)) ProgrammingStatus = STATUS_CMD_TOUT; @@ -139,6 +139,9 @@ uint8_t ISPTarget_WaitForProgComplete(const uint8_t ProgrammingMode, const uint1 ProgrammingStatus = ISPTarget_WaitWhileTargetBusy(); break; } + + if (ProgrammingStatus == STATUS_CMD_OK) + TimeoutMSRemaining = COMMAND_TIMEOUT_MS; return ProgrammingStatus; } @@ -159,10 +162,7 @@ uint8_t ISPTarget_WaitWhileTargetBusy(void) } while ((SPI_ReceiveByte() & 0x01) && TimeoutMSRemaining); - if (!(TimeoutMSRemaining)) - return STATUS_RDY_BSY_TOUT; - else - return STATUS_CMD_OK; + return ((TimeoutMSRemaining) ? STATUS_CMD_OK : STATUS_RDY_BSY_TOUT); } /** Sends a low-level LOAD EXTENDED ADDRESS command to the target, for addressing of memory beyond the