Fixed AVRISP project timeouts not checking for the correct timeout period (thanks...
[pub/lufa.git] / Projects / AVRISP / Lib / PDITarget.c
index df01497..29bb339 100644 (file)
@@ -311,14 +311,23 @@ void PDITarget_SendBreak(void)
 bool PDITarget_WaitWhileNVMBusBusy(void)\r
 {\r
        TCNT0 = 0;\r
-\r
+       TIFR0 = (1 << OCF1A);\r
+                       \r
+       uint8_t TimeoutMS = PDI_NVM_TIMEOUT_MS;\r
+       \r
        /* Poll the STATUS register to check to see if NVM access has been enabled */\r
-       while (TCNT0 < PDI_NVM_TIMEOUT_MS)\r
+       while (TimeoutMS)\r
        {\r
                /* Send the LDCS command to read the PDI STATUS register to see the NVM bus is active */\r
                PDITarget_SendByte(PDI_CMD_LDCS | PDI_STATUS_REG);\r
                if (PDITarget_ReceiveByte() & PDI_STATUS_NVM)\r
                  return true;\r
+\r
+               if (TIFR0 & (1 << OCF1A))\r
+               {\r
+                       TIFR0 = (1 << OCF1A);\r
+                       TimeoutMS--;\r
+               }\r
        }\r
        \r
        return false;\r