aboutsummaryrefslogtreecommitdiffstats
path: root/Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.c
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2010-01-29 06:02:02 +0000
committerDean Camera <dean@fourwalledcubicle.com>2010-01-29 06:02:02 +0000
commita114878209e275cbbbad64e79746975f4c16a291 (patch)
tree71f362452df5cc312fe9d48209c174a45e7dac5a /Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.c
parent872f61ff53dced4529b743faf639b984e7e9ce77 (diff)
downloadlufa-a114878209e275cbbbad64e79746975f4c16a291.tar.gz
lufa-a114878209e275cbbbad64e79746975f4c16a291.tar.bz2
lufa-a114878209e275cbbbad64e79746975f4c16a291.zip
Oops - TPI programming is broken in the AVRISP project because the busy-flag check wasn't inverting the result.
Diffstat (limited to 'Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.c')
-rw-r--r--Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.c b/Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.c
index 0e6833a7f..e7513032f 100644
--- a/Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.c
+++ b/Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.c
@@ -55,7 +55,7 @@ static void TINYNVM_SendPointerAddress(const uint16_t AbsoluteAddress)
*/
static void TINYNVM_SendReadNVMRegister(uint8_t Address)
{
- /* The TPI command for reading from the I/O space uses wierd addressing, where the I/O address's upper
+ /* The TPI command for reading from the I/O space uses strange addressing, where the I/O address's upper
* two bits of the 6-bit address are shifted left once */
XPROGTarget_SendByte(TPI_CMD_SIN | ((Address & 0x30) << 1) | (Address & 0x0F));
}
@@ -99,9 +99,11 @@ bool TINYNVM_WaitWhileNVMControllerBusy(void)
/* Poll the STATUS register to check to see if NVM access has been enabled */
while (TimeoutMSRemaining)
{
- /* Send the SIN command to read the TPI STATUS register to see the NVM bus is active */
+ /* Send the SIN command to read the TPI STATUS register to see the NVM bus is busy */
TINYNVM_SendReadNVMRegister(XPROG_Param_NVMCSRRegAddr);
- if (XPROGTarget_ReceiveByte() & (1 << 7))
+
+ /* Check to see if the BUSY flag is still set */
+ if (!(XPROGTarget_ReceiveByte() & (1 << 7)))
return true;
}