But in a nutshell, the width of your pulse determines the angle that the servo turns to. So if you give it a short pulse, it might turn to the left, and if you give a long pulse, it might turn to the right.

they are controlled the same way as continues servo, when you increase or decrees the speed of a continues servo you are increasing or decreasing the angle of a normal servo and the neutral point is the same.

sounds like you are trying to turn to a point outside the servo's range.as for reseting your microcontroller, probably the servo drawing too much power as it struggles against it's end point and using too much power, causing your microcontroler to reset as the voltage drops too low.

try playing with your timing loop to find a point inside the servo's range.

So, for a servo, the 0 position is the center, and it usually goes from -90 to 90 degrees. So, from your example above, I think 300 = -90 deg, 750 = 0 deg, 1250 = 90 deg.

The best way to know what values to use for the pulsout would be to check the specs for the servo itself. Usually it has a datasheet or something like that that'll tell you the zero position and the max width.