Use immediate variable expansion in the second-deepest level makefile scripts to...
[pub/USBasp.git] / Projects / AVRISP-MKII / Lib / XPROG / XMEGANVM.c
index e1169d5..b782475 100644 (file)
@@ -80,7 +80,7 @@ bool XMEGANVM_WaitWhileNVMBusBusy(void)
                uint8_t StatusRegister = XPROGTarget_ReceiveByte();
 
                /* We might have timed out waiting for the status register read response, check here */
-               if (TimeoutExpired)
+               if (!(TimeoutTicksRemaining))
                  return false;
 
                /* Check the status register read response to see if the NVM bus is enabled */
@@ -109,7 +109,7 @@ bool XMEGANVM_WaitWhileNVMControllerBusy(void)
                uint8_t StatusRegister = XPROGTarget_ReceiveByte();
 
                /* We might have timed out waiting for the status register read response, check here */
-               if (TimeoutExpired)
+               if (!(TimeoutTicksRemaining))
                  return false;
 
                /* Check to see if the BUSY flag is still set */
@@ -174,6 +174,8 @@ void XMEGANVM_DisablePDI(void)
  */
 bool XMEGANVM_GetMemoryCRC(const uint8_t CRCCommand, uint32_t* const CRCDest)
 {
+       *CRCDest = 0;
+
        /* Wait until the NVM controller is no longer busy */
        if (!(XMEGANVM_WaitWhileNVMControllerBusy()))
          return false;
@@ -209,7 +211,7 @@ bool XMEGANVM_GetMemoryCRC(const uint8_t CRCCommand, uint32_t* const CRCDest)
        for (uint8_t i = 0; i < XMEGA_CRC_LENGTH_BYTES; i++)
          ((uint8_t*)CRCDest)[i] = XPROGTarget_ReceiveByte();
 
-       return (TimeoutExpired == false);
+       return (TimeoutTicksRemaining > 0);
 }
 
 /** Reads memory from the target's memory spaces.
@@ -241,10 +243,10 @@ bool XMEGANVM_ReadMemory(const uint32_t ReadAddress, uint8_t* ReadBuffer, uint16
 
        /* Send a LD command with indirect access and post-increment to read out the bytes */
        XPROGTarget_SendByte(PDI_CMD_LD | (PDI_POINTER_INDIRECT_PI << 2) | PDI_DATSIZE_1BYTE);
-       while (ReadSize-- && !(TimeoutExpired))
+       while (ReadSize-- && TimeoutTicksRemaining)
          *(ReadBuffer++) = XPROGTarget_ReceiveByte();
 
-       return (TimeoutExpired == false);
+       return (TimeoutTicksRemaining > 0);
 }
 
 /** Writes byte addressed memory to the target's memory spaces.