Index: RTC.c =================================================================== diff -u -rc4171147708d867ba5886aaa53182ad0fae774d3 -r7e186bb97310fb59f525e5399ec7a74711bea571 --- RTC.c (.../RTC.c) (revision c4171147708d867ba5886aaa53182ad0fae774d3) +++ RTC.c (.../RTC.c) (revision 7e186bb97310fb59f525e5399ec7a74711bea571) @@ -1090,10 +1090,13 @@ { result = RTC_EXEC_STATE_PREP_RAM; } - else if ( TIMER_COUNTER_TO_REQUEST_READ == timeCounter ) + else if ( TIMER_COUNTER_TO_REQUEST_READ >= timeCounter ) { - prepBufferForReadCommand( RTC_GENERAL_BUFFER_LENGTH ); - result = RTC_EXEC_STATE_READ; + if ( TRUE == getSemaphore( SEMAPHORE_RTC ) ) + { + prepBufferForReadCommand( RTC_GENERAL_BUFFER_LENGTH ); + result = RTC_EXEC_STATE_READ; + } } else { @@ -1266,6 +1269,7 @@ { RTC_DATA_T data; + releaseSemaphore( SEMAPHORE_RTC ); updateReadTimestampStruct(); lastEpochTime = convertDateTime2Epoch( RTCTimestampStruct ); timeCounter = 1;