System Clock via Timer/Counter 0¶
lbuild module: modm:platform:clock
The TC0 timer is used to provide a time point at milli- and microsecond
resolution to implement the modm::Clock::now()
and modm::PreciseClock::now()
interfaces defined in the modm:architecture:clock
module.
For this, the timer is configured to trigger a 1ms interrupt to increment the
millisecond counter. To compute the microsecond counter, the 8-bit timer counter
is used to interpolate between milliseconds via a 16x16=16-bit multiplication
and shift to avoid a division. This is very fast, however, the resolution of the
modm::PreciseClock
is limited to at best ~4us (1000us/8-bit) and at worst
~32us ((2MHz/64)/1000us).
This module is only available for avr.
Dependencies¶
Limited availability: Check with 'lbuild discover' if this module is available for your target!