From af2ea9345fc15b686eaf7d18af3dcdd86a570662 Mon Sep 17 00:00:00 2001 From: Leszek Rusinowicz Date: Tue, 23 Oct 2018 11:56:25 +0200 Subject: [PATCH] Fixed Timer implementation to force initialization of the related hardware timer in non-critical context. --- drivers/Timer.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/Timer.cpp b/drivers/Timer.cpp index 5a6d7df9e4b..c73dd6f10f4 100644 --- a/drivers/Timer.cpp +++ b/drivers/Timer.cpp @@ -23,11 +23,13 @@ namespace mbed { Timer::Timer() : _running(), _start(), _time(), _ticker_data(get_us_ticker_data()), _lock_deepsleep(true) { + (void)ticker_read_us(_ticker_data); // Make sure h/w timer is initialized in non-critical context. reset(); } Timer::Timer(const ticker_data_t *data) : _running(), _start(), _time(), _ticker_data(data), _lock_deepsleep(true) { + (void)ticker_read_us(_ticker_data); // Make sure h/w timer is initialized in non-critical context. reset(); #if DEVICE_LPTICKER _lock_deepsleep = (data != get_lp_ticker_data());