First call to updateLEDs() happens at startTime + 33ms
For an animation of a multiple of 33ms, the last call to updateLEDs() will happen at startTime + duration, making the animation last for duration + 33ms.
So the overall animation duration is correct but timings are shifted by 33ms
First call to updateLEDs() happens at startTime + 33ms For an animation of a multiple of 33ms, the last call to updateLEDs() will happen at startTime + duration, making the animation last for duration + 33ms.
So the overall animation duration is correct but timings are shifted by 33ms