X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/8cb8f1cfddf0d9a76442f8fdafe207ac7e6fe340..73801c73a1684a88bff33aefe3c5aa89bc66c414:/Projects/Incomplete/AVRISP/Lib/V2ProtocolTarget.c diff --git a/Projects/Incomplete/AVRISP/Lib/V2ProtocolTarget.c b/Projects/Incomplete/AVRISP/Lib/V2ProtocolTarget.c index f9b4427ce..e23885bb3 100644 --- a/Projects/Incomplete/AVRISP/Lib/V2ProtocolTarget.c +++ b/Projects/Incomplete/AVRISP/Lib/V2ProtocolTarget.c @@ -40,7 +40,7 @@ uint32_t CurrentAddress; uint8_t V2Protocol_GetSPIPrescalerMask(void) { - static const uint8_t SPIMaskFromSCKDuration[] = + static const uint8_t SPIMaskFromSCKDuration[TOTAL_PROGRAMMING_SPEEDS] = { #if (F_CPU == 8000000) SPI_SPEED_FCPU_DIV_2, @@ -76,14 +76,8 @@ void V2Protocol_ChangeTargetResetLine(bool ResetTarget) } } -void V2Protocol_DelayMS(uint8_t MS) -{ - TCNT0 = 0; - while (TCNT0 < MS); -} - uint8_t V2Protocol_WaitForProgComplete(uint8_t ProgrammingMode, uint16_t PollAddress, uint8_t PollValue, - uint8_t DelayMS, bool IsFlashMemory, uint8_t ReadMemCommand) + uint8_t DelayMS, uint8_t ReadMemCommand) { uint8_t ProgrammingStatus = STATUS_CMD_OK; @@ -96,13 +90,7 @@ uint8_t V2Protocol_WaitForProgComplete(uint8_t ProgrammingMode, uint16_t PollAdd break; case PROG_MODE_WORD_VALUE_MASK: case PROG_MODE_PAGED_VALUE_MASK: - if (IsFlashMemory && (PollAddress & 0x01)) - { - ReadMemCommand |= READ_WRITE_ODD_BYTE_MASK; - PollAddress >>= 1; - } - - TCNT0 = 0; + TCNT0 = 0; do { @@ -119,6 +107,7 @@ uint8_t V2Protocol_WaitForProgComplete(uint8_t ProgrammingMode, uint16_t PollAdd case PROG_MODE_WORD_READYBUSY_MASK: case PROG_MODE_PAGED_READYBUSY_MASK: ProgrammingStatus = V2Protocol_WaitWhileTargetBusy(); + break; } return ProgrammingStatus; @@ -126,9 +115,7 @@ uint8_t V2Protocol_WaitForProgComplete(uint8_t ProgrammingMode, uint16_t PollAdd uint8_t V2Protocol_WaitWhileTargetBusy(void) { - uint8_t ResponseByte; - - TCNT0 = 0; + TCNT0 = 0; do { @@ -136,9 +123,8 @@ uint8_t V2Protocol_WaitWhileTargetBusy(void) SPI_SendByte(0x00); SPI_SendByte(0x00); - ResponseByte = SPI_ReceiveByte(); } - while ((ResponseByte & 0x01) && (TCNT0 < TARGET_BUSY_TIMEOUT_MS)); + while ((SPI_ReceiveByte() & 0x01) && (TCNT0 < TARGET_BUSY_TIMEOUT_MS)); if (TCNT0 >= TARGET_BUSY_TIMEOUT_MS) return STATUS_RDY_BSY_TOUT;