TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: anaiviv84 en 07 de Diciembre de 2004, 20:42:00
-
Hola!!
La verdad tengo un problema urgente. Y resulta que esto de los PICs es bastante novedoso para mi, y estoy intentando configurar los PWMs para manejar servomotores y no he podido. Pues entiendo que los servos trabajan con una frecuencia de 20 ms y no se porque cuando hago los cálculos correspondientes a las formulas de las hojas de datos del PIC me da como resultado que el periodo máximo que puedo configurar es de 16 ms con un cristal de 4 MHz y el Preescaler en 16.
Puede que yo este haciendo mal estos cálculos, entonces por si alguno sabe y ya ha trabajado los servos con el PIC me pueda explicar
Mil gracias..
-
Si no te importara hacer la tarea en otro lenguaje, en la seccion de PBP y PROTON nuestro amigo Lager ha puesto un buen ejemplo al respecto, yo creo que te valdrá si le haces las pertinentes modificaciones.
salu2
-
Hola..
La formula para hallar el periodo del PWM es (1/clock)*4*t2div*(period+1), haciendo los calculos da que el periodo minimo con el preescaler en 16 y reloj de 4 Mhz es 4.08 ms (245 Hz), para el periodo que tu necesitas 20ms (50Hz) necesitarias usar un cristal de 800KHz o menos
(1/800000)*4*16*(250) = 20 ms
-
En los cálculos Odukec debe referirse a Tmax.
Los cálculos yo los haría así:
T=(PR2+1)·4·Tosc·TMR2preescaler
Entonces, el Tmax será cuando usemos PR2max=1111 1111=255 y TMR2preescalermax=16
Si usamos fosc=4MHz -----> Tmax=(255+1)·4·(1/4)·16=4096us=4,096ms que corresponde a una fmín=244Hz
Con la misma técnica puedes calcular el Tmín (fmax).
Un saludo
-
Hola!
Les agradezco a todos por sus respuestas, y si es como Pocher dice el periodo que puedo obtener es de 4 ms con un cristal de 4 MHz.
Ya que no debia cambiar de cristal finalmente alargue el periodo revisando los flancos de subida que saca el pwm y decidia cuales sacaba o no por otros pines del pic, y se me soluciono el problema.
Muchas gracias a todos!