TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: eldelaesquina en 15 de Mayo de 2013, 18:02:02
-
Hola.
Tengo un problema que aunque sencillo, no lo he tocado nunca y no sé por donde tirar.
Tengo una entrada digital PWM conectada a un pic, en mi caso el 16F887. Dependiendo de Duty Cycle que entre, tengo que hacer otras operaciones con el pic. No he tocado nunca este tema y no sé que puedo hacer internamente para leer estas variaciones. ¿Me puede ayudar alguien orientándome sobre esto ó decirme donde puedo encontrar información?.
Gracias de antemano.
-
Yo tampoco lo he utilizado nunca y por tanto tampoco no se exactamente como se deberia hacer. Pero se me ocurre lo siguiente.
Mediante una interrupcion, disparas un contador en el flanco ascendente, en el siguiente flanco descendente tomas el valor y lo guardas en una variable, por ejemplo "ton" sin resetear el contador y en el proximo ascendente, guardas el nuevo valor en otra variable, por ejemplo "per" y reseteas el contador y vuelta a empezar. Para obtener el duty cicle solo tienes que calcular el porcentaje de "per" que representa "ton", lo guardas en otra variable, por ejemplo "duty" y ya lo tendrias.
No se si habra un mecanismo mas ortodoxo para hacerlo y si el que te indico sera totalmente fiable, aunque creo que si. Ya nos sacaran de dudas otros foreros mas experimentados en el tema.
Saludos.
-
Está muy bien lo que indica AcoranTf.
Si conoces la frecuencia a la cual trabaja dicho PWM (que sería lo mismo que conocer el período) bastaría con sólo tomar el tiempo en estado alto (tiempo entre flanco ascendente y descendente).
Eso se podría implementar con interrupción en RB0. Primero por flanco ascendente y luego por flanco descendente.
-
Aca tenes la respuesta:
http://picmania.garcia-cuervo.net/tecnicas_en_c_0_indice.php
Saludos!!
-
Hola.
Os agradezco mucho el interés y el buen método que me habéis propuesto porque eso es lo que buscaba. El tutorial de Picmania es de maravilla. Gracias por todo.
Saludos.
-
Me alegro que te haya sido útil!
Saludos!