From dc292a8cd319a09d30851e9bc514a8ebdca8b7ed Mon Sep 17 00:00:00 2001 From: Gatsby Van Date: Fri, 22 Dec 2023 13:19:43 +0800 Subject: [PATCH] add time util function. --- datalink814_ge/src/time_ctrl/time_ctrl.c | 25 ++++++++++++++++++++++++ datalink814_ge/src/time_ctrl/time_ctrl.h | 1 + 2 files changed, 26 insertions(+) diff --git a/datalink814_ge/src/time_ctrl/time_ctrl.c b/datalink814_ge/src/time_ctrl/time_ctrl.c index e437fce..410be4b 100644 --- a/datalink814_ge/src/time_ctrl/time_ctrl.c +++ b/datalink814_ge/src/time_ctrl/time_ctrl.c @@ -219,3 +219,28 @@ void TimeCtrl_SetOptimizeStep(TIMECTRL_INST* instPtr, TIME_FRAC* tmFrac) { ASSERT(tmFrac != NULL); TMC_Write(instPtr, CNTSTEP_OPT, *tmFrac); } + + +/*****************************************************************************/ +/** + * @brief Calculate tmA - tmA. + * + * @param tmA time stamp A + * @param tmA time stamp B + * @param tRound t round + * + * @return NONE + * + ******************************************************************************/ +void TimeCtrl_CalculateTimeGap(const TIME_WORD *a, const TIME_WORD *b, TIME_WORD *gap){ + ASSERT(a != NULL); + ASSERT(b != NULL); + ASSERT(gap != NULL); + uint64_t timeDiff; + timeDiff = (uint64_t) b->frac_part; + timeDiff += ((uint64_t)b->int_part) * COUNTE_FRAC_MAX; + timeDiff -= ((uint64_t)a->int_part) * COUNTE_FRAC_MAX; + timeDiff -= (uint64_t) a->frac_part; + gap->frac_part = (TIME_FRAC)(timeDiff % COUNTE_FRAC_MAX); + gap->frac_part = (TIME_INT)(timeDiff / COUNTE_FRAC_MAX); +} \ No newline at end of file diff --git a/datalink814_ge/src/time_ctrl/time_ctrl.h b/datalink814_ge/src/time_ctrl/time_ctrl.h index 7f35e06..f0e88b9 100644 --- a/datalink814_ge/src/time_ctrl/time_ctrl.h +++ b/datalink814_ge/src/time_ctrl/time_ctrl.h @@ -66,6 +66,7 @@ void TimeCtrl_GetCurrentStep(TIMECTRL_INST *instPtr, TIME_FRAC* tmFrac); void TimeCtrl_SetOptimizeStep(TIMECTRL_INST *instPtr, TIME_FRAC* tmFrac); void TimeCtrl_TimeAdjust(TIMECTRL_INST *instPtr, const TIME_WORD* tmWord, TIMECTRL_ADJ_TYPE type); +void TimeCtrl_CalculateTimeGap(const TIME_WORD *a, const TIME_WORD *b, TIME_WORD *gap); #endif /* TIME_SYNC_H_ */