void Ticker::setup(us_timestamp_t t) { core_util_critical_section_enter(); remove(); _delay = t; insert_absolute(_delay + ticker_read_us(_ticker_data)); core_util_critical_section_exit(); }
us_timestamp_t Timer::slicetime() { us_timestamp_t ret = 0; core_util_critical_section_enter(); if (_running) { ret = ticker_read_us(_ticker_data) - _start; } core_util_critical_section_exit(); return ret; }
void Timer::start() { core_util_critical_section_enter(); if (!_running) { if(_lock_deepsleep) { sleep_manager_lock_deep_sleep(); } _start = ticker_read_us(_ticker_data); _running = 1; } core_util_critical_section_exit(); }
static inline us_timestamp_t read_us(void) { #if defined(MBED_CPU_STATS_ENABLED) && DEVICE_LPTICKER if (NULL == sleep_ticker) { sleep_ticker = (ticker_data_t *)get_lp_ticker_data(); } return ticker_read_us(sleep_ticker); #else return 0; #endif }
timestamp_t ticker_read(const ticker_data_t *const ticker) { return ticker_read_us(ticker); }
void Timer::reset() { core_util_critical_section_enter(); _start = ticker_read_us(_ticker_data); _time = 0; core_util_critical_section_exit(); }
uint32_t HAL_GetTick() { return ticker_read_us(get_us_ticker_data()) / 1000; // 1 ms tick is required for ST HAL }