More fixes to the AVRISP command timeout system so that it should no longer lock up while processing command no matter what the conditions.
This commit is contained in:
parent
12a01ed72d
commit
e322f14620
8 changed files with 58 additions and 31 deletions
|
@ -75,7 +75,7 @@ void ISPProtocol_EnterISPMode(void)
|
|||
|
||||
/* Continuously attempt to synchronize with the target until either the number of attempts specified
|
||||
* by the host has exceeded, or the the device sends back the expected response values */
|
||||
while (Enter_ISP_Params.SynchLoops-- && (ResponseStatus == STATUS_CMD_FAILED))
|
||||
while (Enter_ISP_Params.SynchLoops-- && (ResponseStatus == STATUS_CMD_FAILED) && TimeoutMSRemaining)
|
||||
{
|
||||
uint8_t ResponseBytes[4];
|
||||
|
||||
|
@ -518,4 +518,19 @@ void ISPProtocol_SPIMulti(void)
|
|||
}
|
||||
}
|
||||
|
||||
/** Blocking delay for a given number of milliseconds.
|
||||
*
|
||||
* \param[in] DelayMS Number of milliseconds to delay for
|
||||
*/
|
||||
void ISPProtocol_DelayMS(uint8_t DelayMS)
|
||||
{
|
||||
while (DelayMS-- && TimeoutMSRemaining)
|
||||
{
|
||||
if (TimeoutMSRemaining)
|
||||
TimeoutMSRemaining--;
|
||||
|
||||
_delay_ms(1);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue