SuperTinyKernel™ RTOS 1.06.x
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 __stk_forceinline Ticks GetTimeUs ()
 Get elapsed time in microseconds.

Detailed Description

High-resolution clock for high-precision measurements.

Definition at line 485 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()

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

Get elapsed time in microseconds.

Note
ISR-safe.
Returns
Microseconds.

Definition at line 503 of file stk_arch.h.

504 {
505 Ticks ticks = 0LL;
506 const uint32_t freq = GetFrequency();
507
508 if (freq != 0U)
509 {
510 const Cycles cycles = GetCycles();
511 const Cycles ticksu = (cycles * 1000000ULL) / static_cast<Cycles>(freq);
512
513 ticks = static_cast<Ticks>(ticksu);
514 }
515
516 return ticks;
517 }
int64_t Ticks
Ticks value.
Definition stk_common.h:151
uint64_t Cycles
Cycles value.
Definition stk_common.h:161
static uint32_t GetFrequency()
Get clock frequency.
static Cycles GetCycles()
Get number of clock cycles elapsed.

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

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: