Programar Assembler 3 Servomotores

He leído mucho sobre el tema, YA SE QUE EXISTEN TEMAS PARECIDOS, pero esque yo tenía una duda, necesito que me digan exactamente si esta correcto o no.

Para controlar 3 servomotores, cuál es la mejor manera de estructurar el programa?
(Sólo necesito 3 posiciones en los tres servos, derecha, centro izquierda)
Me explico:

No domino mucho el tema de los pics, preferiría no usar ningur timer.
Yo habia pensado, por ejemplo:

t=0 pongo en alto todos los servos
(delay 0.5 ms)
t=0.5 ms pongo en bajo los servos que necesiten posicion a la izquierda
(delay 0.7 ms)
t=1.2 ms pongo en bajo los servos que necesiten posicion centro
(delay 0.8 ms)
t=2 ms pongo en bajo todos los servos
(delay 18 ms)*
t=20 ms vuelve al inicio y pon en alto todos los servos.....

*(durante la delay de 18 ms se chechea las entradas y se guarda en un GPR, y así se sabe la posición que deben adoptar los servos.)

Porque nadie de la gente que he leído lo programa así? Hay algun error que me haya pasado por alto? Hay alguna manera más fácil?



pic16F84A o pic16F873

Muchas gracias a todos :)

PD. Y otra cosa como curiosidad, los servos pueden funcionar con una señal más rapida que 50 Hz? Por ejemplo 100 Hz?
 
Atrás
Arriba