I've been experimenting with the Servo Library using a SG92R servo motor and after looking into the code, printing the pulse width with the method "Servo::readMicroseconds()", I've noticed that 0 degrees corresponds to a pulse width of 544 us and 180 degrees to 2400 us. I thought that a servo requires a PWM pulse width of 1 to 2 ms to drive the servo to 0 to 180 degrees with a 20 ms period. So I am confused right now. Would be glad for clarification. Thanks in advance.
1 to 2 ms is the nominal value. Many servos also react correctly to pulse widths a little bit shorter or longer. And not all servos have a real moving range of 0...180 degree.
You can adjust the pulsewidths for 0 and 180 degree in the servo lib to your needs.
Ok, so one may have to find out the limits of the motor by trial and error and drive it accordingly. This would imply that manufacturers of motors in the hobby segment are not strictly following nominal values.
I just programmed Timer1 manually with a 1-2ms pulse and the motor that I have was not rotating fully. But when I used the Servo Lib, it rotated fully with having default values from 544 to 2400us.