Debes repasarte la instrucción for.
Recuerda, for(A;B;C)
Primero al entrar ejecuta A y compara si cumple B. Si cumple entra. Una vez finalizado ejecuta C y comprueba B. Si cumple entra. Esto se vuelve a repetir hasta que no se cumpla B. Entonces sale.
Por ejemplo:
int ciclo=10;
for(j=1;j=ciclo;j++) {.... }
Al entrar hace j=1, compara si j=ciclo, osea si 1=10. Como es distinto sale de for (no se si te das por aludido
)
for (j=1;j<=ciclo;j++){.....}
En este caso el ciclo se repite por 10 veces.
o lo que es lo mismo:
for(j=0;j<ciclo;j++) {....}
Revisa esos bucle for.
Por cierto, el 16F874A tiene 2 módulos CCP, osea que puedes tener 2 PWM de la misma frecuencia con distinto duty. Si la frecuencia está dentro del rango para ese cristal, te será mejor usar eso, ya que al ser hard no ocupas al micro en realizarla. La programas y listo, salida PWM por pin. Y en C es bastante fácil.
Saludos!!