Estimados todos... después de casi 9 años, he vuelto a buscar este mismo tema... sin recordar que antes lo había postrado. Lamento no haber seguido los que ha puesto BrunoF.
Pero bueno... he tomado su programa y lo he modificado para hacer un mezclador de colores automático...
He acá el código, realizado y compilado con CCS
#include <16F628A.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock = 20M)
void main(){
int c, pwm1, pwm2, pwm3, a, b;
c=a=b=0;
pwm1=1;
pwm2=1;
pwm3=1;
while(1){
if(pwm1>=c) {output_high(pin_b0);}
else {output_low(pin_b0);}
if(pwm2>=c) {output_high(pin_b1);}
else {output_low(pin_b1);}
if(pwm3>=c) {output_high(pin_b2);}
else {output_low(pin_b2);}
//delay_us(10);
c++; //incrementar paso
if(c==255){pwm1++; a++;}
if(a==50){pwm2++; a=0; b++;}
if(b==10){pwm3++; b=0; }
}
}