Pin - is a variable/constant (constant only on some parts) which specifies the i/o pin to use.
Pulse - is variable/constant (75-225) which specifies the servo position
Servos, as commonly found in radio control toys, are a very accurate motor/ gearbox assembly that can be repeatedly moved to the same position due to their internal position sensor. Generally servos require a pulse of 0.75 to 2.25ms every 20ms, and this pulse must be constantly repeated every 20ms. Once the pulse is lost the servo will lose its position. The servo command starts a pin pulsing high for length of time pulse (x0.01 ms) every 20ms. The 'servopos' adjusts the length of this pulse. The servo command initialises the pin for servo operation and starts the timer. Once a pin has been initialised, it is recommended to use the 'servopos' command to adjust position. This prevents resetting of the timer, which could cause 'jitter'.
Do not use a pulse value less than 75 or greater than 225, as this may cause the servo to malfunction. Due to tolerances in servo manufacture all values are approximate and will require fine-tuning by experimentation. Always use a separate 6V (e.g 4x AA cells) power supply for the servo, as they generate a lot of electrical noise.
Note that the overhead processing time required for processing the servo commands every 20ms causes the other commands to be slightly extended i.e. a pause command will take slightly longer than expected. The servo pulses are also temporarily disabled during timing sensitive serin, serout, sertxd and debug commands.
Effect of increased clock speed:
The servopos command will function correctly at 4 or 16MHz (8 or 32Mhz for X2 parts). No other frequency will work correctly.
Move a servo
Move a servo on output 4 between two positions
Submit Your Own Code!
You must be logged in to submit code examples. Login now.