I'm involved with a project that requires use of pwm signals to drive six brushless DC motors (each connected to an ESC) for a hexrotor hovercraft. The hovercraft will use an IMU to automatically hover in one spot for prolonged periods of time; this will, of course, require the use of PID control. My partner and I differ on how to generate the appropriate pwm signals; I am leaning toward using the microcontroller's Timer and OCRn registers directly, while my partner prefers to use the Software Servo library.
My fear of using the Servo library is due to the fact that I don't understand how one timer (Timer1 in this case) can drive six motors without sacrificing performance. I've looked at Servo.h and Servo.cpp, but Servo.cpp's code is difficult for me to understand and I'd like to just start finishing up the programming for the project. Can anyone offer a simple explanation on how Software Servo drives more than two motors, or their thoughts on choosing timers vs the servo library?
If indeed the servo library is just, or almost efficient, as manually programming the timers I'll go with the servo library in a heartbeat.