Hi Anthony, Sorry I've been so quiet (about a five hundred pages to proof-read and a broken tester will do that to you). Actually, that's exactly the method I use in "Programming and Customizing the PIC Microcontroller". The only difference is, instead of setting up a delay of 1 msec before varying the output pulse period, I put in a delay loop for the 1 and then It does work well and is easily expandable. When I did it, I had four Servo outputs and got a step granularity of 20 usecs (which gives 47 different steps). The longer delay (you could bring it down to a 7 usec step granularity for 143 different steps) for a single channel. For each servo, I do a compare on the count to the loop count and when they match, I make the pulse low. How are you planning on doing this for greater than one servo? Thanx for sharing this with us - I'm interested in seeing what you come up with. myke -----Original Message----- From: Anthony Clay To: PICLIST@MITVMA.MIT.EDU Date: Tuesday, July 20, 1999 3:47 PM Subject: Hey Myke! Web page update No real new documentation on the Pic-Flyer, but my PIC projects section has a new "advanced servo control techniques and algorithms" page. While brainstorming I came up with a way to control more servos with less processor time (processor time being measured in percentages of one full second. I may have found a way to control lots of servos, more than 12, and only use 24% of the processor! I did this by coming up with this great idea: Instead of "looping" to generate timed delays, why not just use some advanced interrupt handler to make better use of that wonderful tmr0. The interrupt would work like this: Begin interrupt (triggered by timer0 every 18mS) reload timer0 to overflow in 1mS Set the pulse output pin high and an interrupt_flag high Return from interrupt Main-line code Begin interrupt again (1mS later) Check to see if flag is high If so, generate the rest of the delay "manually" (If you are using a *really* fast processor, 20MHz, try generating the entire pulse with an interrupt. Once the delay is over, set the output pulse low. Set up timer0 to return control in another 18mS Return from interrupt In a nutshell, the entire idea is to provide more execution time to the main-line code, in the PICFlyer, my servo controller must also handle 2-wire serial communications, ( a later project. ) I posted the document to illustrate a technique I though would be a good contribution to the list. Speaking of the list, could someone please append my name and site to David Tait's, now defunct, list of hobbyists? Login: at www.intcon.net/~jrclay Goto: PIC Projects Goto: Servo Controllers and algorithms I have not yet posted the code for the Serial-Parallel controller, just a single servo controller, I am still working the the method described above Myke P. : Your comments please.