Make WaitWhileBusy function in the AVRISP project more explicit about how it sends...
[pub/USBasp.git] / Projects / AVRISP / Lib / V2ProtocolTarget.c
index c36295e..9c6ccf4 100644 (file)
@@ -92,8 +92,8 @@ void V2Protocol_ChangeTargetResetLine(bool ResetTarget)
        }\r
        else\r
        {\r
        }\r
        else\r
        {\r
-               RESET_LINE_PORT &= ~RESET_LINE_MASK;\r
                RESET_LINE_DDR  &= ~RESET_LINE_MASK;\r
                RESET_LINE_DDR  &= ~RESET_LINE_MASK;\r
+               RESET_LINE_PORT &= ~RESET_LINE_MASK;\r
        }\r
 }\r
 \r
        }\r
 }\r
 \r
@@ -161,8 +161,9 @@ uint8_t V2Protocol_WaitWhileTargetBusy(void)
                SPI_SendByte(0x00);\r
 \r
                SPI_SendByte(0x00);\r
                SPI_SendByte(0x00);\r
 \r
                SPI_SendByte(0x00);\r
+               bool DeviceBusy = (SPI_ReceiveByte() & 0x01);\r
        }\r
        }\r
-       while ((SPI_ReceiveByte() & 0x01) && (TCNT0 < TARGET_BUSY_TIMEOUT_MS));\r
+       while (DeviceBusy && (TCNT0 < TARGET_BUSY_TIMEOUT_MS));\r
 \r
        if (TCNT0 >= TARGET_BUSY_TIMEOUT_MS)\r
          return STATUS_RDY_BSY_TOUT;\r
 \r
        if (TCNT0 >= TARGET_BUSY_TIMEOUT_MS)\r
          return STATUS_RDY_BSY_TOUT;\r