problema al variar el duty cycle de un pwm

hola amigos soy nuevo en el foro, estoy desarrolando un proyecto con un pwm en, pic c compiler. Se calcular la frecuencia de trabajo este es el programa..

#include <16f877.h> //pic a utilizar
#fuses XT,NOWDT,NOPROTECT,PUT,NOLVP //ordenes para el programador
#use delay (clock=4000000) //Fosc=4Mhz
///Declaracion De Variables
long duty_cycle1;
///PROGRAMA
void main(void){
set_tris_c(0b00000000);
output_low(PIN_C2);
setup_ccp1(CCP_PWM); //ccp2 modo PWM
setup_timer_2(T2_DIV_BY_1, 99, 1); // -> 100us -> 10khz
while(true){
duty_cycle1 = 300; //100us/1*(1/4000000)) = 300
set_pwm1_duty(duty_cycle1); //ciclo en alto
}
}

el problema es que sin el set_pwm1_duty(duty_cycle1); me da la onda pero si llamo al ciclo de trabajo en alto se me cae la frecuencia y en proteus no me muestra nada e intentado de todo y no termino de concluir donde esta el problema cera mi proteus
 
Atrás
Arriba