VEX IQ RobotC Timer Accuracy

The RobotC timer function doesn’t seem to be very accurate. I made a quick program that clears the timer clearTimer(T1); then does some useless tasks for 10 minutes. At the end of the 10 minutes, time100(T1); reports 4676, which is 467.6 seconds. This means the robot brain clock is very slow. It perceives 0.78 seconds whereas 1 second passes in real-time. This is complicated when harder tasks are executed to pass the time, such as floating-point divisions. The time100(T1) timekeeping seems to be variable, depending on the intensity of the brain’s activity.

Are there workarounds to the timer accuracy issue, especially the variability of the timer? Any ideas on stabilizing the timers to get more accurate timekeeping?

Additional information: The debugger apparently is very disruptive to the timer function. With the debugger unplugged, the timer function is accurate (I was able to measure down to ~200 milliseconds over a 10 minute test). Note that the timer function is also affected if the robot controller is attached via a tether cable. With the robot controller physically attached, the timer function performed poorly. Detaching the tether, the timer function became accurate again.

This means any timer-dependent program cannot be accurately tested without physically unplugging the robot controller tether and the programming USB cable.

Interesting observations, thanks for sharing.