Originally Posted by Akcopter
What is Hardware PWM???
The Atmega datasheets explains all but its hard going, even if you are coding with Arduino it is worth a read.
Basically you set up the timer(s) to put out a PWM signal and it leaves the MCU free to do other stuff. Software is writing code that the MCU handles to turn a digital pin on and off.
You might just be able to use AnalogWrite in arduino to spit out your PWM signals. Although the resolution might not be enough. http://arduino.cc/en/Reference/AnalogWrite
Did I mention the APM libraries? If I were doing it that is what I would use. They go a little deeper than the standard arduino code.