Ehh...Te dejé la rutina para hacer un PWM fácil hace dos días....la tenés un poco más arriba de esto que estás leyendo...
Te agradesco mucho el aporte bruno...
pero, si bien, con tu rutina, puedes modificar el periodo (cambiar la velocidad) solo tienes 3 posiciones para
"el largo del ciclo eficaz" (no esta mal para controlar un servomotor), pero es insuficiente para crear un mesclador de colores, por ejemplo (como lo que estoy haciendo yo)
el codigo que yo realice, puedes modificar la velocidad a gusto (igual al programa tuyo), pero ademas, puedes programar el largo del ciclo eficas a gusto.
para los que no cachan que es un PWM, voy a tratar de explicar (si me equivoco en algo me corrigen, y lo discutimos):
el largo eficas de esta señal, es el porcentaje del periodo en que la señal es alta (un 1 logico). por ejemplo:
0% 50% 100%
__________ __________
_______! !_________! !______ = señal cuadrada (por ejemplo de un clock) con periodo T=[1/F] (donde F es la frecuencia de la señal)
!<------------T---------->!
En este ejemplo, el ciclo eficas es de 50% (para un servomotor, significaria que se pocicionaria en el centro, o sea su pococion natural; para un diodo led, su brillo seria del 50%).
0% 33% 100%
______ _______
_______! !_____________! !__________ = la misma señal cuadrada con el mismo periodo T, pero con un 33% de su ciclo efectivo.
!<------------T---------->!
(para el servomotor, significaria que se pocicionaria hacia la izquierda; para un diodo led, se estaria casi apagando).
0% 66% 100%
_____________ _______
_______! !______! !__________ = la misma señal cuadrada con el mismo periodo T, pero con un 66% de su ciclo efectivo.
!<------------T---------->!
(para el servomotor, significaria que se pocicionaria hacia la derecha; para un diodo led, estaria serca de su maximo brillo).
si pudieramos controlar el largo de el ciclo efecaz al alimentar un diodo led, hariamos un dimmer. si el didodo es un RGB, con 2 salidas de estas, podriamos hacer una mescla de 2 colores.... y asi sucesivamente.
PD: ojala no sea muy latoso esto que postee.