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