SuperTinyKernel™ RTOS 1.06.0
Lightweight, high-performance, deterministic, bare-metal C++ RTOS for resource-constrained embedded systems. MIT Open Source License.
Loading...
Searching...
No Matches
stk::hw::HiResClock Class Reference

High-resolution clock for high-precision measurements. More...

#include <stk_arch.h>

Static Public Member Functions

static Cycles GetCycles ()
 Get number of clock cycles elapsed.
static uint32_t GetFrequency ()
 Get clock frequency.
static Ticks GetTimeUs ()
 Get elapsed time in microseconds.

Detailed Description

High-resolution clock for high-precision measurements.

Definition at line 437 of file stk_arch.h.

Member Function Documentation

◆ GetCycles()

Cycles stk::hw::HiResClock::GetCycles ( )
static

Get number of clock cycles elapsed.

Note
ISR-safe.
Returns
Clock cycles.

Referenced by GetTimeUs(), and stk_hires_cycles().

Here is the caller graph for this function:

◆ GetFrequency()

uint32_t stk::hw::HiResClock::GetFrequency ( )
static

Get clock frequency.

Note
ISR-safe.
Returns
Frequency in Hz.

Referenced by GetTimeUs(), and stk_hires_frequency().

Here is the caller graph for this function:

◆ GetTimeUs()

Ticks stk::hw::HiResClock::GetTimeUs ( )
inlinestatic

Get elapsed time in microseconds.

Note
ISR-safe.
Returns
Microseconds.

Definition at line 455 of file stk_arch.h.

456 {
457 uint32_t freq = GetFrequency();
458 STK_ASSERT(freq != 0); // guaranteed non-zero
459
460 return static_cast<Ticks>((GetCycles() * 1000000ULL) / freq);
461 }
#define STK_ASSERT(e)
Runtime assertion. Halts execution if the expression e evaluates to false.
Definition stk_defs.h:330
int64_t Ticks
Ticks value.
Definition stk_common.h:128
static uint32_t GetFrequency()
Get clock frequency.
static Cycles GetCycles()
Get number of clock cycles elapsed.

References GetCycles(), GetFrequency(), and STK_ASSERT.

Referenced by stk_hires_time_us().

Here is the call graph for this function:
Here is the caller graph for this function:

The documentation for this class was generated from the following file: