Index: RTC.c =================================================================== diff -u -rda558dd783462f555fc7b6b15fa49ca690fc2ab8 -r9cf5fd162701bb6ada19428df2f47044a5c93a08 --- RTC.c (.../RTC.c) (revision da558dd783462f555fc7b6b15fa49ca690fc2ab8) +++ RTC.c (.../RTC.c) (revision 9cf5fd162701bb6ada19428df2f47044a5c93a08) @@ -748,21 +748,22 @@ { mibspiSetData( mibspiREG3, MIBSPI_GROUP_ZERO, bufferTransmit ); mibspiTransfer( mibspiREG3, MIBSPI_GROUP_ZERO ); - numberOfFailedRTCTransfers = 0; previousTransferLength = bufferLength; + isRTCServiceOnEntry = FALSE; RTCServiceState = RTC_WAIT_FOR_TRANSFER_AND_READ; } - else if ( numberOfFailedRTCTransfers >= MAX_ALLOWED_FAILED_RTC_TRANSFERS ) - { - logSPIFailure(); - RTCServiceState = RTC_SERVICE_COMPLETE; - } else { + isRTCServiceOnEntry = TRUE; numberOfFailedRTCTransfers++; logSPIFailure(); + + if ( numberOfFailedRTCTransfers >= MAX_ALLOWED_FAILED_RTC_TRANSFERS ) + { + numberOfFailedRTCTransfers = 0; + RTCServiceState = RTC_SERVICE_COMPLETE; + } } - isRTCServiceOnEntry = FALSE; break; case RTC_WAIT_FOR_TRANSFER_AND_READ: @@ -773,21 +774,21 @@ numberOfFailedRTCTransfers = 0; result = TRUE; } - else if ( numberOfFailedRTCTransfers >= MAX_ALLOWED_FAILED_RTC_TRANSFERS ) - { - logSPIFailure(); - RTCServiceState = RTC_SERVICE_COMPLETE; - //wjbnumberOfFailedRTCTransfers = 0; - } else { // Transfer to RTC failed. This transfer should be done in 50ms numberOfFailedRTCTransfers++; logSPIFailure( ); + + if ( numberOfFailedRTCTransfers >= MAX_ALLOWED_FAILED_RTC_TRANSFERS ) + { + numberOfFailedRTCTransfers = 0; } + RTCServiceState = RTC_SERVICE_COMPLETE; + } } // Done with read (successful or failed) // get ready for another call - //wjbisRTCServiceOnEntry = TRUE; + isRTCServiceOnEntry = TRUE; break; case RTC_SERVICE_COMPLETE: