1#include "hpm_timebase.hpp"
7static inline uint64_t ConvertTicksToTime(uint64_t ticks, uint32_t freq_hz,
10 if (freq_hz == 0u)
return 0u;
12 const uint64_t whole = ticks / freq_hz;
13 const uint64_t rem = ticks - (whole * freq_hz);
14 const uint64_t frac = (rem * scale) / freq_hz;
15 return whole * scale + frac;
20 :
Timebase(static_cast<uint64_t>(UINT32_MAX) * 1000 + 999, UINT32_MAX),
22 clock_hz_(clock_get_frequency(clock))
28 const uint64_t ticks = mchtmr_get_count(
timer_);
34 const uint64_t ticks = mchtmr_get_count(
timer_);
MCHTMR_Type * timer_
定时器外设实例 / Timer peripheral instance.
MillisecondTimestamp _get_milliseconds() override
获取毫秒时间戳 / Get current timestamp in milliseconds.
HPMTimebase(MCHTMR_Type *timer=HPM_MCHTMR, clock_name_t clock=clock_mchtmr0)
构造 HPM 时间基对象 / Construct an HPM timebase object.
MicrosecondTimestamp _get_microseconds() override
获取微秒时间戳 / Get current timestamp in microseconds.
uint32_t clock_hz_
定时器输入时钟频率(Hz) / Timer input clock frequency in Hz.
表示微秒级时间戳的类。Class representing a timestamp in microseconds.
表示毫秒级时间戳的类。Class representing a timestamp in milliseconds.
时间基类,用于提供高精度时间戳。 Timebase class for providing high-precision timestamps.