Que tal comunidad.
Voy directo al grano: Lean detenidamente este link; 8 Canales de PWM con un 16F628A antes de seguir, ya que sobre esa publicacion se basan mis dudas/preguntas.
El autor de esa publicacion (Mario Sacco), ha logrado quitarme el sueño...
Resulta ser que nuestro querido y respetado amigo Mario, muy alegremente, ha diseñado un hermoso codigo para controlar (en forma completa, y funcionalmente, individual) 8 canales PWM con un PIC 16F628A. Logicamente todo hecho por software, nada de perifericos PWMs... ya que dicho pic contiene, a duras penas, solo uno de aquellos modulos, el cual nisiquiera usa en el codigo.
Estaria todo mas que perfecto si hubiera publicado el codigo completo de su programa... pero no lo hizo... por lo que si uno quiere comprender bien que, y como, realizo dicha hazaña, debera tener que combinar la interpretacion del poco codigo publicado con la (relativamente) escasa explicacion que da de su funcionamiento...
Tal vez sea una boludes, tal vez no, no se; lo que si se es que ya van 3 madrugadas que paso analizando, pensando y probando y no logro descifrar ciertos puntos claves de como carambas hizo este muchacho para lograr lo que dice (y muestra en sus videos) que logro...
Lo que me quita el sueño no es el hecho en sí de programar 8 PWM con distintos dutys (logico)... ya que esto ya lo he realizado... si no que, por lo que logro interpretar, el muchacho éste, logra tener el MAIN limpio de "prendidos y apagados" de canales, y solo lo usa para variar los duys...
Explico...
Lo que yo logre tambin es con principio de funcionamiento en la utilizacion del TMR0 ( algo parecido a lo que explica "megatron" en este tema Controlador digital rgb (PWM) para leds ). Lo que pasa que de esta forma uno requiere que el programa principal este totalmente dedicado a hacer solo eso; prender y apagar los 8 canales. Si, con distintos dutys entre si, pero FIJOS. Si uno quisiera ir variando los dutys de cada canal en el mismo software en forma dinamica y practica se choca contra la pared... por que el programa solo esta concentrado en prender y apagar los leds... si pretendes agregar codigo para hacer efectos "locos" con los canales tenes que complicarte la existencia terriblemente para no alterar demaciado la duracion de los dutys ni la frecuencia de trabajo.
Por lo que a Mario se le ocurrio usar la interrupcion del TMR0 para prender y apagar los canales, dejando al codigo principal unicamente dedicado a hacer efectos "locos" variando los dutys de cada canal de la forma que mas les guste...
O bueno... al menos eso es lo que yo interpreto...
El tema es eso... que no entiendo como carambas hizo para lograr eso... sí, tengo una deduccion al respecto que tiene sus puntos muertos, pero es largo de explicar y prefiero hacerlo sobre la marcha de las ideas que vallan tirando todos uds.
Asi que bueno, espero se prendan a analizar conmigo este proyectito, ya que me parece muy interesante, practico y eficiente!
Saludos a todos!
Voy directo al grano: Lean detenidamente este link; 8 Canales de PWM con un 16F628A antes de seguir, ya que sobre esa publicacion se basan mis dudas/preguntas.
El autor de esa publicacion (Mario Sacco), ha logrado quitarme el sueño...
Resulta ser que nuestro querido y respetado amigo Mario, muy alegremente, ha diseñado un hermoso codigo para controlar (en forma completa, y funcionalmente, individual) 8 canales PWM con un PIC 16F628A. Logicamente todo hecho por software, nada de perifericos PWMs... ya que dicho pic contiene, a duras penas, solo uno de aquellos modulos, el cual nisiquiera usa en el codigo.
Estaria todo mas que perfecto si hubiera publicado el codigo completo de su programa... pero no lo hizo... por lo que si uno quiere comprender bien que, y como, realizo dicha hazaña, debera tener que combinar la interpretacion del poco codigo publicado con la (relativamente) escasa explicacion que da de su funcionamiento...
Tal vez sea una boludes, tal vez no, no se; lo que si se es que ya van 3 madrugadas que paso analizando, pensando y probando y no logro descifrar ciertos puntos claves de como carambas hizo este muchacho para lograr lo que dice (y muestra en sus videos) que logro...
Lo que me quita el sueño no es el hecho en sí de programar 8 PWM con distintos dutys (logico)... ya que esto ya lo he realizado... si no que, por lo que logro interpretar, el muchacho éste, logra tener el MAIN limpio de "prendidos y apagados" de canales, y solo lo usa para variar los duys...
Explico...
Lo que yo logre tambin es con principio de funcionamiento en la utilizacion del TMR0 ( algo parecido a lo que explica "megatron" en este tema Controlador digital rgb (PWM) para leds ). Lo que pasa que de esta forma uno requiere que el programa principal este totalmente dedicado a hacer solo eso; prender y apagar los 8 canales. Si, con distintos dutys entre si, pero FIJOS. Si uno quisiera ir variando los dutys de cada canal en el mismo software en forma dinamica y practica se choca contra la pared... por que el programa solo esta concentrado en prender y apagar los leds... si pretendes agregar codigo para hacer efectos "locos" con los canales tenes que complicarte la existencia terriblemente para no alterar demaciado la duracion de los dutys ni la frecuencia de trabajo.
Por lo que a Mario se le ocurrio usar la interrupcion del TMR0 para prender y apagar los canales, dejando al codigo principal unicamente dedicado a hacer efectos "locos" variando los dutys de cada canal de la forma que mas les guste...
O bueno... al menos eso es lo que yo interpreto...
El tema es eso... que no entiendo como carambas hizo para lograr eso... sí, tengo una deduccion al respecto que tiene sus puntos muertos, pero es largo de explicar y prefiero hacerlo sobre la marcha de las ideas que vallan tirando todos uds.
Asi que bueno, espero se prendan a analizar conmigo este proyectito, ya que me parece muy interesante, practico y eficiente!
Saludos a todos!