Changed AVRISP-MKII project to use the Watchdog interrupt for command timeouts, to reduce CPU usage and free timer 0 for other uses in the future.

This commit is contained in:
Dean Camera 2011-01-22 17:48:06 +00:00
parent ef44b8c036
commit 26017b68b0
10 changed files with 37 additions and 35 deletions

View file

@ -250,7 +250,7 @@ uint8_t ISPTarget_TransferSoftSPIByte(const uint8_t Byte)
TCNT1 = 0;
TCCR1B = ((1 << WGM12) | (1 << CS11));
while (SoftSPI_BitsRemaining && TimeoutTicksRemaining);
while (SoftSPI_BitsRemaining && !(TimeoutExpired));
TCCR1B = 0;
return SoftSPI_Data;
@ -292,9 +292,9 @@ uint8_t ISPTarget_WaitWhileTargetBusy(void)
ISPTarget_SendByte(0x00);
ISPTarget_SendByte(0x00);
}
while ((ISPTarget_ReceiveByte() & 0x01) && TimeoutTicksRemaining);
while ((ISPTarget_ReceiveByte() & 0x01) && !(TimeoutExpired));
return TimeoutTicksRemaining ? STATUS_CMD_OK : STATUS_RDY_BSY_TOUT;
return (TimeoutExpired) ? STATUS_RDY_BSY_TOUT : STATUS_CMD_OK;
}
/** Sends a low-level LOAD EXTENDED ADDRESS command to the target, for addressing of memory beyond the
@ -344,9 +344,9 @@ uint8_t ISPTarget_WaitForProgComplete(const uint8_t ProgrammingMode,
ISPTarget_SendByte(PollAddress >> 8);
ISPTarget_SendByte(PollAddress & 0xFF);
}
while ((ISPTarget_TransferByte(0x00) == PollValue) && TimeoutTicksRemaining);
while ((ISPTarget_TransferByte(0x00) == PollValue) && !(TimeoutExpired));
if (!(TimeoutTicksRemaining))
if (TimeoutExpired)
ProgrammingStatus = STATUS_CMD_TOUT;
break;