I've been working on a project that uses the servo.h library. Everything was working ok, but the project has recently stopped working (i.e. the servo won't move.) I have worked with servos a lot in the past, so am reasonably confident that I've avoided most of the most basic issues.
The hardware (arduino pro mini and futaba servo) seem to be working correctly - I can upload some of my earlier servo projects and everything works fine. My code all compiles and uploads as expected, and I know that servo.writeMicroseconds() function is being executed with the correct values, the problem is that the servo just won't move.
Here's my theory (and my question to the forum). I know that the servo.h library uses one of the timers, and I know that these timers require the use of registers. Are these registers part of 'normal' dynamic memory, or are they in some way protected? Can they be corrupted like normal memory can be?
My current best guess is that somewhere in my code I have managed to corrupt one or more of the registers that the servo.h timer uses. (I have never knowingly changed any of the registers). If my theory is plausible, is there any way of checking it?