Index: firmware/App/Controllers/RTC.c =================================================================== diff -u -re20e8cd14d3965560e5ff38835270ef541e5abe6 -r451eb63c75e6af4d6498b598a7001eb5433a812d --- firmware/App/Controllers/RTC.c (.../RTC.c) (revision e20e8cd14d3965560e5ff38835270ef541e5abe6) +++ firmware/App/Controllers/RTC.c (.../RTC.c) (revision 451eb63c75e6af4d6498b598a7001eb5433a812d) @@ -970,26 +970,22 @@ { RTC_EXEC_STATE_T result = RTC_EXEC_STATE_WRITE; - if ( setMibSPIBufferLength( RTC_TIMESTAMP_BUFFER_LENGTH ) ) + BOOL isStatusOk = serviceRTC( &txBuffer[ BUFFER_INDEX_0 ], &rxBuffer[ BUFFER_INDEX_0 ], RTC_TIMESTAMP_BUFFER_LENGTH ); + + if ( RTCServiceState == RTC_SERVICE_COMPLETE && isStatusOk ) { - BOOL isStatusOk = serviceRTC( &txBuffer[ BUFFER_INDEX_0 ], &rxBuffer[ BUFFER_INDEX_0 ], RTC_TIMESTAMP_BUFFER_LENGTH ); + // Reset the counter to start with the new read + timeCounter = 1; - if ( RTCServiceState == RTC_SERVICE_COMPLETE && isStatusOk ) - { - // Reset the counter - timeCounter = 1; - hasWriteToRTCRequested = FALSE; + hasWriteToRTCRequested = FALSE; - result = RTC_EXEC_STATE_IDLE; - } - else if ( RTCServiceState == RTC_SERVICE_COMPLETE && ! isStatusOk ) - { - result = RTC_EXEC_STATE_FAULT; - } + result = RTC_EXEC_STATE_IDLE; } - else + else if ( RTCServiceState == RTC_SERVICE_COMPLETE && ! isStatusOk ) { result = RTC_EXEC_STATE_FAULT; + + hasWriteToRTCRequested = FALSE; } return result;