mbedmicro/mbed — pull request #552 by Sissors (2014-10-10 19:31:09+00:00)
Title: [API] Timer-start behavior (bug)fix

Only start the timer when it is not running currently. In old behavior
the current slice-time was discarded, now multiple starts have no
effect.

The total time of a timer consists of two parts: The current time, and the stored time from the last time stop() was called. Right now the start command sets the starting point of now running time to the current time. This means if you call start twice, effectively the last one overrides the first one. However the stored time from the last stop() command does stay correct. Effectively this means that the current time is reset, but the stored time is not. To me this looks like unintended behavior, and if a timer is already running and the start function is used, it should just continue running.