Index: RTC.c =================================================================== diff -u -re3eeaed468ddf4eb9e0aef5904cee301870e676e -r6b11ea4a37a54cd47af543900dfa68dac27c8c7e --- RTC.c (.../RTC.c) (revision e3eeaed468ddf4eb9e0aef5904cee301870e676e) +++ RTC.c (.../RTC.c) (revision 6b11ea4a37a54cd47af543900dfa68dac27c8c7e) @@ -8,7 +8,7 @@ * @file RTC.c * * @author (last) Dara Navaei -* @date (last) 22-Feb-2022 +* @date (last) 13-Jul-2022 * * @author (original) Dara Navaei * @date (original) 11-Jan-2020 @@ -721,7 +721,6 @@ alarm = ALARM_ID_HD_RTC_CONFIG_ERROR; #endif -#ifndef DISABLE_RTC_CONFIG U16 controlReg1 = rxBuffer[ RTC_REG_1_INDEX ]; U16 controlReg2 = rxBuffer[ RTC_REG_2_INDEX ]; U16 controlReg3 = rxBuffer[ RTC_REG_3_INDEX ]; @@ -767,9 +766,12 @@ #ifdef _DG_ SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_RTC_BATTERY_LOW, controlReg3, RTC_REG_3_BLF_MASK ); #endif +#ifdef _HD_ + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_RTC_BATTERY_LOW, controlReg3, RTC_REG_3_BLF_MASK ); +#endif hasTestPassed = FALSE; } -#endif + return hasTestPassed; } @@ -886,7 +888,9 @@ U32 twoYears = twoYrEpoch / SECONDS_IN_2_YEARS; U32 oneYrEpoch = twoYrEpoch - ( twoYears * SECONDS_IN_2_YEARS ); U32 oneYears = ( twoYears > 0 ? oneYrEpoch / SECONDS_IN_LEAP_YEAR : oneYrEpoch / SECONDS_IN_NORMAL_YEAR ); - U32 days = ( twoYears > 0 ? ( oneYrEpoch - SECONDS_IN_LEAP_YEAR ) / SECONDS_IN_A_DAY : ( oneYrEpoch - SECONDS_IN_NORMAL_YEAR ) / SECONDS_IN_A_DAY ); + U32 days34 = ( oneYears > 0 ? ( oneYrEpoch - SECONDS_IN_LEAP_YEAR ) / SECONDS_IN_A_DAY : oneYrEpoch / SECONDS_IN_A_DAY ); + U32 days12 = ( oneYears > 0 ? ( oneYrEpoch - SECONDS_IN_NORMAL_YEAR ) / SECONDS_IN_A_DAY : oneYrEpoch / SECONDS_IN_A_DAY ); + U32 days = ( twoYears > 0 ? days34 : days12 ); U32 wholeYears = ( fourYears * 4 ) + ( twoYears * 2 ) + oneYears; BOOL leapYear = ( twoYears > 0 && 0 == oneYears ? TRUE : FALSE ); U32 oneDayEpoch= oneYrEpoch % SECONDS_IN_A_DAY; @@ -1393,6 +1397,8 @@ static RTC_SELF_TEST_STATE_T handleSelfTestCheckAccuracy( void ) { RTC_SELF_TEST_STATE_T result = RTC_SELF_TEST_STATE_CHECK_ACCURACY; + +#ifndef BOARD_WITH_NO_HARDWARE BOOL isStatusOk = serviceRTC( txBuffer, rxBuffer, RTC_GENERAL_BUFFER_LENGTH ); if ( ( TRUE == isStatusOk ) && ( rxBuffer[ RTC_SECONDS_INDEX ] != RTCPreviousSecond ) ) @@ -1423,11 +1429,27 @@ SET_ALARM_WITH_2_U32_DATA( alarm, (U32)elapsedFPGATime, (U32)elapsedTime ); } } +#else + result = RTC_SELF_TEST_STATE_COMPLETE; + RTCSelfTestResult = SELF_TEST_STATUS_PASSED; +#endif return result; } +/*********************************************************************//** + * @brief + * The resetRTCPostState function resets the RTC self test state + * @details Inputs: none + * @details Outputs : RTCSelfTestState + * @return none + *************************************************************************/ +void resetRTCPostState( void ) +{ + RTCSelfTestState = RTC_SELF_TEST_STATE_START; +} + /************************************************************************* * TEST SUPPORT FUNCTIONS *************************************************************************/