An alternate form is to initialize all at once and then turn individual pulses off as needed. _ ___| |_________________ ________ ___| |__________ ______ ___| |____________ ___________ ___| |_______ ___ ___| |_______________ This method lends itself well to an interrupt- driven approach. See Scot Datallo's recent posting for details of such a method. Fr. Tom Mcgahee -----Original Message----- From: Quentin To: PICLIST@MITVMA.MIT.EDU Date: Monday, February 14, 2000 11:17 AM Subject: Re: PWM on F84 >And to add to that: >Servo pulses normally get updated every 20 mS, so it's a pulse of 1-2 mS >every 20mS. >So you got 20mS to update each of your eight servos, one after the >other: > _ >_| |__________1 >___| |________2 >_____| |______3 >etc. > >Quentin > >Dave VanHorn wrote: >> >> > thanks for responding to this mail. i am trying to control 8 sevro with >> > pic. The position of the sevro will depend on the pause signal.nornmally >> the >> > range is between 10ms to 800ms. it is possible to update all the pins with >> > min error? >> >> Are you sure you have these timings right? >> Typical servo pulse widths are 1-2mS with 1.5 being the center value. >> >> That being said, you could define eight locations in memory, and have a >> loop (or timer interrupt) that decrements them, and if they are non-zero, >> set the appropriate output bit, and if zero, reset the output bit. >> >> The granularity there is the timer or loop time, and the error is defined by >> the difference in length of the turn-on and turn-off routines. >