TimeoutMSRemaining = COMMAND_TIMEOUT_MS;\r
return true;\r
}\r
-\r
- /* Manage software timeout */\r
- if (TIFR0 & (1 << OCF0A))\r
- {\r
- TIFR0 |= (1 << OCF0A);\r
- TimeoutMSRemaining--;\r
- }\r
}\r
\r
return false;\r
TimeoutMSRemaining = COMMAND_TIMEOUT_MS;\r
return true;\r
}\r
-\r
- /* Manage software timeout */\r
- if (TIFR0 & (1 << OCF0A))\r
- {\r
- TIFR0 |= (1 << OCF0A);\r
- TimeoutMSRemaining--;\r
- }\r
}\r
\r
return false;\r
for (uint8_t i = 0; i < XMEGA_CRC_LENGTH; i++)\r
((uint8_t*)CRCDest)[i] = XPROGTarget_ReceiveByte();\r
\r
- return true;\r
+ return (TimeoutMSRemaining != 0);\r
}\r
\r
/** Reads memory from the target's memory spaces.\r
\r
/* Send a LD command with indirect access and postincrement to read out the bytes */\r
XPROGTarget_SendByte(PDI_CMD_LD | (PDI_POINTER_INDIRECT_PI << 2) | PDI_DATSIZE_1BYTE);\r
- while (ReadSize--)\r
+ while (ReadSize-- && TimeoutMSRemaining)\r
*(ReadBuffer++) = XPROGTarget_ReceiveByte();\r
\r
- return true;\r
+ return (TimeoutMSRemaining != 0);\r
}\r
\r
/** Writes byte addressed memory to the target's memory spaces.\r