Polling every 100 milliseconds definitely skips some ticks. Maybe the polling should occur every 10 milliseconds.