Fix mstimer elapsed time (#58)

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
This commit is contained in:
Steve Karg
2020-03-17 17:27:25 -05:00
committed by GitHub
parent 1b9c1ad3b3
commit f18612f1ec
9 changed files with 29 additions and 10 deletions
+1 -1
View File
@@ -400,7 +400,7 @@ static void packet_statistics_clear(void)
static uint32_t Timer_Silence(void *pArg) static uint32_t Timer_Silence(void *pArg)
{ {
return mstimer_remaining(&Silence_Timer); return mstimer_elapsed(&Silence_Timer);
} }
static void Timer_Silence_Reset(void *pArg) static void Timer_Silence_Reset(void *pArg)
+1 -1
View File
@@ -61,7 +61,7 @@ static struct mstimer Silence_Timer;
bool rs485_silence_time_elapsed( bool rs485_silence_time_elapsed(
uint16_t milliseconds) uint16_t milliseconds)
{ {
return (mstimer_remaining(&Silence_Timer) > milliseconds); return (mstimer_elapsed(&Silence_Timer) > milliseconds);
} }
/**************************************************************************** /****************************************************************************
+4 -2
View File
@@ -62,12 +62,14 @@ static volatile struct mstp_port_struct_t MSTP_Port;
/* buffers needed by mstp port struct */ /* buffers needed by mstp port struct */
static uint8_t RxBuffer[MAX_MPDU]; static uint8_t RxBuffer[MAX_MPDU];
static uint8_t TxBuffer[MAX_MPDU]; static uint8_t TxBuffer[MAX_MPDU];
static struct mstimer Silence_Timer;
static uint32_t Timer_Silence( static uint32_t Timer_Silence(
void *pArg) void *pArg)
{ {
uint32_t delta_time = 0; uint32_t delta_time = 0;
delta_time = timer_milliseconds(TIMER_SILENCE); delta_time = mstimer_elapsed(&Silence_Timer);
if (delta_time > 0xFFFF) { if (delta_time > 0xFFFF) {
delta_time = 0xFFFF; delta_time = 0xFFFF;
} }
@@ -78,7 +80,7 @@ static uint32_t Timer_Silence(
static void Timer_Silence_Reset( static void Timer_Silence_Reset(
void *pArg) void *pArg)
{ {
timer_reset(TIMER_SILENCE); mstimer_set(&Silence_Timer, 0);
} }
/* functions used by the MS/TP state machine to put or get data */ /* functions used by the MS/TP state machine to put or get data */
+1 -1
View File
@@ -76,7 +76,7 @@ void lse_init(
while (1) { while (1) {
if (LSE_Delay < LSE_FAIL_FLAG) { if (LSE_Delay < LSE_FAIL_FLAG) {
mstimer_set(&Delay_Timer, 0); mstimer_set(&Delay_Timer, 0);
while (mstimer_remaining(&Delay_Timer) < 500) { while (mstimer_elapsed(&Delay_Timer) < 500) {
/* do nothing */ /* do nothing */
} }
/* check whether LSE is ready, with 4 seconds timeout */ /* check whether LSE is ready, with 4 seconds timeout */
+2 -2
View File
@@ -72,7 +72,7 @@ void rs485_silence_reset(
bool rs485_silence_elapsed( bool rs485_silence_elapsed(
uint32_t interval) uint32_t interval)
{ {
return (mstimer_remaining(&Silence_Timer) > interval); return (mstimer_elapsed(&Silence_Timer) > interval);
} }
/************************************************************************* /*************************************************************************
@@ -101,7 +101,7 @@ static uint16_t rs485_turnaround_time(
bool rs485_turnaround_elapsed( bool rs485_turnaround_elapsed(
void) void)
{ {
return (mstimer_remaining(&Silence_Timer) > rs485_turnaround_time()); return (mstimer_elapsed(&Silence_Timer) > rs485_turnaround_time());
} }
+1 -1
View File
@@ -72,7 +72,7 @@ static struct mstimer Silence_Timer;
static uint32_t Timer_Silence( static uint32_t Timer_Silence(
void *pArg) void *pArg)
{ {
return mstimer_remaining(&Silence_Timer); return mstimer_elapsed(&Silence_Timer);
} }
static void Timer_Silence_Reset( static void Timer_Silence_Reset(
+2 -2
View File
@@ -90,7 +90,7 @@ void rs485_silence_reset(void)
*/ */
bool rs485_silence_elapsed(uint32_t interval) bool rs485_silence_elapsed(uint32_t interval)
{ {
return (mstimer_remaining(&Silence_Timer) > interval); return (mstimer_elapsed(&Silence_Timer) > interval);
} }
/** /**
@@ -154,7 +154,7 @@ static uint16_t rs485_turnaround_time(void)
*/ */
bool rs485_turnaround_elapsed(void) bool rs485_turnaround_elapsed(void)
{ {
return (mstimer_remaining(&Silence_Timer) > rs485_turnaround_time()); return (mstimer_elapsed(&Silence_Timer) > rs485_turnaround_time());
} }
/** /**
+15
View File
@@ -106,6 +106,21 @@ unsigned long mstimer_remaining(struct mstimer *t)
return t->start + t->interval - mstimer_now(); return t->start + t->interval - mstimer_now();
} }
/**
* The time elapsed since the timer started
*
* This function returns the time elapsed.
*
* @param t A pointer to the timer
*
* @return The time elapsed since the last start of the timer
*
*/
unsigned long mstimer_elapsed(struct mstimer *t)
{
return mstimer_now() - t->start;
}
/** /**
* The value of the interval * The value of the interval
* *
+2
View File
@@ -59,6 +59,8 @@ int mstimer_expired(struct mstimer *t);
BACNET_STACK_EXPORT BACNET_STACK_EXPORT
unsigned long mstimer_remaining(struct mstimer *t); unsigned long mstimer_remaining(struct mstimer *t);
BACNET_STACK_EXPORT BACNET_STACK_EXPORT
unsigned long mstimer_elapsed(struct mstimer *t);
BACNET_STACK_EXPORT
unsigned long mstimer_interval(struct mstimer *t); unsigned long mstimer_interval(struct mstimer *t);
/* HAL implementation */ /* HAL implementation */
BACNET_STACK_EXPORT BACNET_STACK_EXPORT