projects
/
pub
/
USBasp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Mark build test makefiles as being incompatible with parallel make builds, as they...
[pub/USBasp.git]
/
Projects
/
AVRISP-MKII
/
Lib
/
ISP
/
ISPTarget.c
diff --git
a/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c
b/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c
index
ac68316
..
6bf74c8
100644
(file)
--- a/
Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c
+++ b/
Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c
@@
-129,9
+129,12
@@
ISR(TIMER1_COMPA_vect, ISR_BLOCK)
{
SoftSPI_Data <<= 1;
{
SoftSPI_Data <<= 1;
- if (!(SoftSPI_BitsRemaining--))
- TCCR1B = 0;
-
+ if (!(--SoftSPI_BitsRemaining))
+ {
+ TCCR1B = 0;
+ TIFR1 = (1 << OCF1A);
+ }
+
if (PINB & (1 << 3))
SoftSPI_Data |= (1 << 0);
}
if (PINB & (1 << 3))
SoftSPI_Data |= (1 << 0);
}
@@
-251,7
+254,7
@@
uint8_t ISPTarget_TransferSoftSPIByte(const uint8_t Byte)
TCNT1 = 0;
TCCR1B = ((1 << WGM12) | (1 << CS11));
TCNT1 = 0;
TCCR1B = ((1 << WGM12) | (1 << CS11));
- while (SoftSPI_BitsRemaining &&
!(TimeoutExpired)
);
+ while (SoftSPI_BitsRemaining &&
TimeoutTicksRemaining
);
TCCR1B = 0;
return SoftSPI_Data;
TCCR1B = 0;
return SoftSPI_Data;
@@
-293,9
+296,9
@@
uint8_t ISPTarget_WaitWhileTargetBusy(void)
ISPTarget_SendByte(0x00);
ISPTarget_SendByte(0x00);
}
ISPTarget_SendByte(0x00);
ISPTarget_SendByte(0x00);
}
- while ((ISPTarget_ReceiveByte() & 0x01) &&
!(TimeoutExpired)
);
+ while ((ISPTarget_ReceiveByte() & 0x01) &&
TimeoutTicksRemaining
);
- return (Timeout
Expired) ? STATUS_RDY_BSY_TOUT : STATUS_CMD_OK
;
+ return (Timeout
TicksRemaining > 0) ? STATUS_CMD_OK : STATUS_RDY_BSY_TOUT
;
}
/** Sends a low-level LOAD EXTENDED ADDRESS command to the target, for addressing of memory beyond the
}
/** Sends a low-level LOAD EXTENDED ADDRESS command to the target, for addressing of memory beyond the
@@
-345,10
+348,10
@@
uint8_t ISPTarget_WaitForProgComplete(const uint8_t ProgrammingMode,
ISPTarget_SendByte(PollAddress >> 8);
ISPTarget_SendByte(PollAddress & 0xFF);
}
ISPTarget_SendByte(PollAddress >> 8);
ISPTarget_SendByte(PollAddress & 0xFF);
}
- while ((ISPTarget_TransferByte(0x00) == PollValue) &&
!(TimeoutExpired)
);
+ while ((ISPTarget_TransferByte(0x00) == PollValue) &&
TimeoutTicksRemaining
);
- if (
TimeoutExpired
)
- ProgrammingStatus = STATUS_CMD_TOUT;
+ if (
!(TimeoutTicksRemaining)
)
+
ProgrammingStatus = STATUS_CMD_TOUT;
break;
case PROG_MODE_WORD_READYBUSY_MASK:
break;
case PROG_MODE_WORD_READYBUSY_MASK:
@@
-358,7
+361,7
@@
uint8_t ISPTarget_WaitForProgComplete(const uint8_t ProgrammingMode,
}
/* Program complete - reset timeout */
}
/* Program complete - reset timeout */
-
wdt_reset()
;
+
TimeoutTicksRemaining = COMMAND_TIMEOUT_TICKS
;
return ProgrammingStatus;
}
return ProgrammingStatus;
}