The OneShot abstraction needs to include usecs as well as msecs. This is particularly important for Poller.pause(), where need an "inline sleep" for (say) 50us....
With no urgent need to preserve backward compatibility, we have several alternative ways to expose the APIs:
create a parallel OneShotMicroI abstraction
consolidate around a single OneShotI abstraction with two methods
consolidate around a single OneShotI abstraction, but with usecs as the unit
In practice, a usec-resolution timer with 24-bits of range can handle intervals up to 16 seconds – more than enough time for our intended use. Legacy 8-bit/16-bit MCUs would prefer having two abstractions/methods for flexibility, however.
Milestone:
The
OneShot
abstraction needs to include usecs as well as msecs. This is particularly important forPoller.pause()
, where need an "inline sleep" for (say) 50us....With no urgent need to preserve backward compatibility, we have several alternative ways to expose the APIs:
OneShotMicroI
abstractionOneShotI
abstraction with two methodsOneShotI
abstraction, but with usecs as the unitIn practice, a usec-resolution timer with 24-bits of range can handle intervals up to 16 seconds – more than enough time for our intended use. Legacy 8-bit/16-bit MCUs would prefer having two abstractions/methods for flexibility, however.