diff options
| author | Dean Camera <dean@fourwalledcubicle.com> | 2009-12-20 22:33:48 +0000 |
|---|---|---|
| committer | Dean Camera <dean@fourwalledcubicle.com> | 2009-12-20 22:33:48 +0000 |
| commit | 37c9ba7fa980472406625973f0ee32719b5a8997 (patch) | |
| tree | 0db6f97496255b576cb150068f904b23b4554cb5 /Projects/AVRISP/Lib/PDITarget.c | |
| parent | 8b7565956380c558bb309732c1d7d2cb58b193ea (diff) | |
| download | lufa-37c9ba7fa980472406625973f0ee32719b5a8997.tar.gz lufa-37c9ba7fa980472406625973f0ee32719b5a8997.tar.bz2 lufa-37c9ba7fa980472406625973f0ee32719b5a8997.zip | |
Fixed AVRISP project timeouts not checking for the correct timeout period (thanks to Carl Ott).
Diffstat (limited to 'Projects/AVRISP/Lib/PDITarget.c')
| -rw-r--r-- | Projects/AVRISP/Lib/PDITarget.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/Projects/AVRISP/Lib/PDITarget.c b/Projects/AVRISP/Lib/PDITarget.c index df01497f6..29bb33985 100644 --- a/Projects/AVRISP/Lib/PDITarget.c +++ b/Projects/AVRISP/Lib/PDITarget.c @@ -311,14 +311,23 @@ void PDITarget_SendBreak(void) bool PDITarget_WaitWhileNVMBusBusy(void)
{
TCNT0 = 0;
-
+ TIFR0 = (1 << OCF1A);
+
+ uint8_t TimeoutMS = PDI_NVM_TIMEOUT_MS;
+
/* Poll the STATUS register to check to see if NVM access has been enabled */
- while (TCNT0 < PDI_NVM_TIMEOUT_MS)
+ while (TimeoutMS)
{
/* Send the LDCS command to read the PDI STATUS register to see the NVM bus is active */
PDITarget_SendByte(PDI_CMD_LDCS | PDI_STATUS_REG);
if (PDITarget_ReceiveByte() & PDI_STATUS_NVM)
return true;
+
+ if (TIFR0 & (1 << OCF1A))
+ {
+ TIFR0 = (1 << OCF1A);
+ TimeoutMS--;
+ }
}
return false;
|
