From 489515fbbf0f61ae63bcdd4b858a5fe59e90c0be Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Thu, 27 Aug 2009 23:07:53 +0000 Subject: [PATCH] Make WaitWhileBusy function in the AVRISP project more explicit about how it sends and receives the busy check command. Reduce size of PROGRAM FLASH ISP or PROGRAM EEPROM ISP buffer to 256 bytes to prevent blowing the stack on the smallest USB AVR models. --- Projects/AVRISP/Lib/V2Protocol.c | 2 +- Projects/AVRISP/Lib/V2ProtocolTarget.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Projects/AVRISP/Lib/V2Protocol.c b/Projects/AVRISP/Lib/V2Protocol.c index 248c50d245..3a1b78efd1 100644 --- a/Projects/AVRISP/Lib/V2Protocol.c +++ b/Projects/AVRISP/Lib/V2Protocol.c @@ -301,7 +301,7 @@ static void V2Protocol_Command_ProgramMemory(uint8_t V2Command) uint8_t ProgrammingCommands[3]; uint8_t PollValue1; uint8_t PollValue2; - uint8_t ProgData[512]; + uint8_t ProgData[256]; } Write_Memory_Params; uint8_t* NextWriteByte = Write_Memory_Params.ProgData; diff --git a/Projects/AVRISP/Lib/V2ProtocolTarget.c b/Projects/AVRISP/Lib/V2ProtocolTarget.c index d06f06510e..9c6ccf4c62 100644 --- a/Projects/AVRISP/Lib/V2ProtocolTarget.c +++ b/Projects/AVRISP/Lib/V2ProtocolTarget.c @@ -161,8 +161,9 @@ uint8_t V2Protocol_WaitWhileTargetBusy(void) SPI_SendByte(0x00); SPI_SendByte(0x00); + bool DeviceBusy = (SPI_ReceiveByte() & 0x01); } - while ((SPI_ReceiveByte() & 0x01) && (TCNT0 < TARGET_BUSY_TIMEOUT_MS)); + while (DeviceBusy && (TCNT0 < TARGET_BUSY_TIMEOUT_MS)); if (TCNT0 >= TARGET_BUSY_TIMEOUT_MS) return STATUS_RDY_BSY_TOUT;