Cómo obtener mas pwm en un pic 16f877a

hola como están necesito que por favor me colabore alguien con esto, estoy haciendo una lampara con led's rgb queria saber si es posible que en un pic 16f877a haya como obtener tres pwm y me diga como puedo hacerlo

gracias espero alguien me ayude
 
por software...

haz esto con tantas salidas quieras, luego tu veras como haces para modificar la variable PWMx

int i, PWM1=50;

while(1){
i++;
if(pwm>i) output_high(pin_xx); else output_low(pin_xx);
delay_us(10);
}
 
¿los timer generan interrupción?
Por que de ser así seria mejor usarlos para realizar la cuentas en lugar de introducirlos directamente en el codigo del bucle principal
Código:
//definimos estos al comienzo de nuestro codigo
int contador = 100; //primero un contador para llevar el control
int SPWM1 = xx; Luego los valores para nuestro PWM
int SPWM2 = xx;
int SPWMx = xx; //Asi le agregas tantas como quieras
interrupción() //no se como se configure esta cosa pero seria la rutina de interrupción
{
   if ( SPWM1 == contador){ output_high (pin_xx);} //un if para comparar cada uno
   if ( SPWM2 == contador){ output_high (pin_yy);} //con activarlos una ves basta
   if ( SPWM2 == contador){ output_high (pin_zz);}
   if (contador == 0) //cuando el contador llega a 0 reinicias y mandas output_low a todos
   {
       output_low (pin_xx);
       output_low (pin_yy);
       output_low (pin_zz);
       contador = 100;
   }
   else{contador--;}
}

Solo es una idea que se me acaba de ocurrir pero supongo que para dimmerizar unos LEDs bastará
 
Última edición:
Atrás
Arriba