From 8f9e497d6950bf47274cb084a6d3d8ca2b854976 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Mon, 19 Apr 2021 09:15:28 -0400 Subject: linux: Rework timer_check_periodic() to use ticks Avoid using a 'struct timespec' to simplify the code. Signed-off-by: Kevin O'Connor --- src/linux/timer.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'src/linux/timer.c') diff --git a/src/linux/timer.c b/src/linux/timer.c index 06330830..f1727ffa 100644 --- a/src/linux/timer.c +++ b/src/linux/timer.c @@ -75,17 +75,6 @@ timespec_read(void) return ts; } -// Check if a given time has past -int -timer_check_periodic(struct timespec *ts) -{ - if (timespec_is_before(TimerInfo.next_wake, *ts)) - return 0; - *ts = TimerInfo.next_wake; - ts->tv_sec += 2; - return 1; -} - /**************************************************************** * Timers @@ -93,6 +82,17 @@ timer_check_periodic(struct timespec *ts) DECL_CONSTANT("CLOCK_FREQ", CONFIG_CLOCK_FREQ); +// Check if a given time has past +int +timer_check_periodic(uint32_t *ts) +{ + uint32_t lrt = TimerInfo.last_read_time; + if (timer_is_before(lrt, *ts)) + return 0; + *ts = lrt + timer_from_us(2000000); + return 1; +} + // Return the number of clock ticks for a given number of microseconds uint32_t timer_from_us(uint32_t us) -- cgit v1.2.3-70-g09d2