Code:
void PWM_Set_duty( uint16_t duty_cycle, uint16_t timer_prescalar )
{
uint16_t reg_value;
float frequency;
frequency = (_XTAL_FREQ/2);
frequency = (frequency/timer_prescalar);
frequency = (frequency/(PR2+1)); // FREQUENCY OF PWM SIGNAL
frequency = (frequency*100)/(duty_cycle);
reg_value = (_XTAL_FREQ)/(uint16_t)(frequency);
reg_value = (reg_value/timer_prescalar);
OC1RS = reg_value;
OC1R = OC1RS;
}