• Lunes 29 de Abril de 2024, 20:47

Autor Tema:  PWM con PIC16F877A  (Leído 3236 veces)

Ipre

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
PWM con PIC16F877A
« en: Viernes 9 de Abril de 2010, 01:59 »
0
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:

picyo

  • Visitante
Re: PWM con PIC16F877A
« Respuesta #1 en: Lunes 17 de Mayo de 2010, 18:15 »
0
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