start() and stop() fix #21
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Presently, start() and stop() simply enable and disable timer IRQ, but
do not actually start or stop the timer. Further, setFrequency() is,
somewhat counterintuitively, responsible for starting the timer.
The impact of this is that one may set the frequency for, say, 1Hz. At
an arbitrary time later, one might issue the start() command. This will
cause the first interrupt to occur at an arbitrary time after the
start() command has been issued. For example, if start is issued 0.3s
after setFrequency(), the first period will be 0.7s after start() is
issued.
This same behavior occurs when stop() is issued, then start() at an
arbitrary time later.
In order to fix this, I've introduced 3 changes:
then start the timer