bool MustSetAddress;\r
\r
\r
+/** ISR for the management of the command execution timeout counter */\r
+ISR(TIMER0_COMPA_vect, ISR_BLOCK)\r
+{\r
+ if (TimeoutMSRemaining)\r
+ TimeoutMSRemaining--;\r
+}\r
+\r
/** Master V2 Protocol packet handler, for received V2 Protocol packets from a connected host.\r
* This routine decodes the issued command and passes off the handling of the command to the\r
* appropriate function.\r
void V2Protocol_ProcessCommand(void)\r
{\r
uint8_t V2Command = Endpoint_Read_Byte();\r
- \r
+ \r
+ TimeoutMSRemaining = COMMAND_TIMEOUT_MS;\r
+ TIMSK0 |= (1 << OCIE0A);\r
+\r
switch (V2Command)\r
{\r
case CMD_SIGN_ON:\r
case CMD_RESET_PROTECTION:\r
V2Protocol_ResetProtection();\r
break;\r
-#if defined(ENABLE_SPI_PROTOCOL)\r
+#if defined(ENABLE_ISP_PROTOCOL)\r
case CMD_ENTER_PROGMODE_ISP:\r
ISPProtocol_EnterISPMode();\r
break;\r
#endif\r
#if defined(ENABLE_XPROG_PROTOCOL)\r
case CMD_XPROG_SETMODE:\r
- PDIProtocol_XPROG_SetMode();\r
+ XPROGProtocol_SetMode();\r
break;\r
case CMD_XPROG:\r
- PDIProtocol_XPROG_Command();\r
+ XPROGProtocol_Command();\r
break;\r
#endif\r
default:\r
V2Protocol_UnknownCommand(V2Command);\r
break;\r
}\r
- \r
+ \r
+ TIMSK0 &= ~(1 << OCIE0A);\r
+\r
Endpoint_WaitUntilReady();\r
Endpoint_SetEndpointDirection(ENDPOINT_DIR_OUT);\r
}\r
*\r
* \param[in] V2Command Issued V2 Protocol command byte from the host\r
*/\r
-static void V2Protocol_UnknownCommand(uint8_t V2Command)\r
+static void V2Protocol_UnknownCommand(const uint8_t V2Command)\r
{\r
/* Discard all incoming data */\r
while (Endpoint_BytesInEndpoint() == AVRISP_DATA_EPSIZE)\r
*\r
* \param[in] V2Command Issued V2 Protocol command byte from the host\r
*/\r
-static void V2Protocol_GetSetParam(uint8_t V2Command)\r
+static void V2Protocol_GetSetParam(const uint8_t V2Command)\r
{\r
uint8_t ParamID = Endpoint_Read_Byte();\r
uint8_t ParamValue;\r