From bca0f7925cadbebf47c6b7d77a20cb5b03908bb4 Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Sun, 20 Jan 2019 17:29:49 +0100 Subject: [PATCH] SAMv7: Add atomic and non-atomic HRT calls This reduces interrupt load significantly. --- src/drivers/samv7/drv_hrt.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/drivers/samv7/drv_hrt.c b/src/drivers/samv7/drv_hrt.c index dfafe206f4..a38e42de5a 100644 --- a/src/drivers/samv7/drv_hrt.c +++ b/src/drivers/samv7/drv_hrt.c @@ -680,6 +680,17 @@ abstime_to_ts(struct timespec *ts, hrt_abstime abstime) */ hrt_abstime hrt_elapsed_time(const volatile hrt_abstime *then) +{ + hrt_abstime delta = hrt_absolute_time() - *then; + + return delta; +} + +/** + * Compare a time value with the current time as atomic operation. + */ +hrt_abstime +hrt_elapsed_time_atomic(const volatile hrt_abstime *then) { irqstate_t flags = enter_critical_section();