X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/271be037b736d66a7b7e0c4d5d30c5a24025277f..f9f1bcc25c17b031029200cd9648d76d4ee39dc4:/Projects/AVRISP/Lib/V2ProtocolTarget.c?ds=sidebyside diff --git a/Projects/AVRISP/Lib/V2ProtocolTarget.c b/Projects/AVRISP/Lib/V2ProtocolTarget.c index a39c5e96d..24cd941a4 100644 --- a/Projects/AVRISP/Lib/V2ProtocolTarget.c +++ b/Projects/AVRISP/Lib/V2ProtocolTarget.c @@ -55,7 +55,7 @@ uint8_t V2Protocol_GetSPIPrescalerMask(void) SPI_SPEED_FCPU_DIV_16, // AVRStudio = 500KHz SPI, Actual = 500KHz SPI SPI_SPEED_FCPU_DIV_32, // AVRStudio = 250KHz SPI, Actual = 250KHz SPI SPI_SPEED_FCPU_DIV_64 // AVRStudio = 125KHz SPI, Actual = 125KHz SPI - #if (F_CPU == 16000000) + #elif (F_CPU == 16000000) SPI_SPEED_FCPU_DIV_2, // AVRStudio = 8MHz SPI, Actual = 8MHz SPI SPI_SPEED_FCPU_DIV_4, // AVRStudio = 4MHz SPI, Actual = 4MHz SPI SPI_SPEED_FCPU_DIV_8, // AVRStudio = 2MHz SPI, Actual = 2MHz SPI @@ -92,8 +92,8 @@ void V2Protocol_ChangeTargetResetLine(bool ResetTarget) } else { - RESET_LINE_PORT &= ~RESET_LINE_MASK; RESET_LINE_DDR &= ~RESET_LINE_MASK; + RESET_LINE_PORT &= ~RESET_LINE_MASK; } } @@ -155,14 +155,17 @@ uint8_t V2Protocol_WaitWhileTargetBusy(void) { TCNT0 = 0; + bool DeviceBusy; + do { SPI_SendByte(0xF0); SPI_SendByte(0x00); SPI_SendByte(0x00); + 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;