From 071323a7364602537e3031cece91c28696e85986 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Wed, 20 Aug 2014 08:01:44 +1000 Subject: [PATCH] HAL_VRBRAIN: added millis64() and micros64() --- libraries/AP_HAL_VRBRAIN/Scheduler.cpp | 18 ++++++++++++++---- libraries/AP_HAL_VRBRAIN/Scheduler.h | 2 ++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/libraries/AP_HAL_VRBRAIN/Scheduler.cpp b/libraries/AP_HAL_VRBRAIN/Scheduler.cpp index cccb85ab39..8c5989bfc4 100644 --- a/libraries/AP_HAL_VRBRAIN/Scheduler.cpp +++ b/libraries/AP_HAL_VRBRAIN/Scheduler.cpp @@ -76,14 +76,24 @@ void VRBRAINScheduler::init(void *unused) pthread_create(&_io_thread_ctx, &thread_attr, (pthread_startroutine_t)&VRBRAIN::VRBRAINScheduler::_io_thread, this); } -uint32_t VRBRAINScheduler::micros() +uint64_t VRBRAINScheduler::micros64() { - return (uint32_t)(hrt_absolute_time() - _sketch_start_time); + return hrt_absolute_time() - _sketch_start_time; } -uint32_t VRBRAINScheduler::millis() +uint64_t VRBRAINScheduler::millis64() { - return hrt_absolute_time() / 1000; + return micros64() / 1000; +} + +uint32_t VRBRAINScheduler::micros() +{ + return micros64() & 0xFFFFFFFF; +} + +uint32_t VRBRAINScheduler::millis() +{ + return millis64() & 0xFFFFFFFF; } /** diff --git a/libraries/AP_HAL_VRBRAIN/Scheduler.h b/libraries/AP_HAL_VRBRAIN/Scheduler.h index e95662377a..e870242691 100644 --- a/libraries/AP_HAL_VRBRAIN/Scheduler.h +++ b/libraries/AP_HAL_VRBRAIN/Scheduler.h @@ -29,6 +29,8 @@ public: void delay(uint16_t ms); uint32_t millis(); uint32_t micros(); + uint64_t millis64(); + uint64_t micros64(); void delay_microseconds(uint16_t us); void register_delay_callback(AP_HAL::Proc, uint16_t min_time_ms); void register_timer_process(AP_HAL::MemberProc);