SoloCodigo
Programación Específica => Microcontroladores => Mensaje iniciado por: Ipre en Viernes 9 de Abril de 2010, 01:59
-
hola
quiero saber como puedo hacer que el periodo de pwm sea de alrededor de 20 ms
lo que quiero es controlar un servomotor con el pic16f877a
estoy usando el mikro c, no c si sea lo mas adecuado
gracias :rolleyes:
-
bueno depende del cristal oscilador que estes usando ( si usas cristal externo claro). por ejemplo, has de mirar la formula :
PWM period = [(PR2) + 1] • 4 • TOSC • (TMR2 prescale value)
contage del registro Inversa de frec. oscilacion prescaler para adecuar ( 1,4 o 16)
(maximo 255+1) multiplica x4 ese tiempo ( o divide
/4 la frec.) pq es el ciclo maquina
Bien 50 Hz es un valor que no conseguirias con 4 Megas de oscilador, al menos asi directamente. Como dices alrededor, que no es exactamente 50 Hz, vemos como conseguir directamente el valor mas pequeño para la resolucion de esa formula :
PWM period = [(255) + 1] • 4 •0,00000025 • (16);
PWM period =0,004096 (244,140625 Hz)
Uhmm demasiado , ¿ no? Pues si usases ese cristal, no hay otra solucion que adecuar un temporizador a partir de esa señal. Si multiplicamos ese tiempo por 4.88. La verdad es que no he sabido muy bien como definir eso, pero mira este link