Eso no tiene sentido y no se puede establecer cualquier valor para el ciclo activo.
Todo tiene un motivo y un por qué, y para eso están las fórmulas en la hoja de datos.
Suponiendo que eso fuera válido, al compilador le daría lo mismo 1/2 que 0.5
Y establecer ese valor quedará totalmente fuera del rango para el registro CCPR(X)L
Por ejemplo, si quiero generar PWM a 1 KHz con un ciclo activo del 50 % con FOsc = 4 MHz:
Tomando como referencia la fórmula de la hoja de datos, tendríamos qué...
PR2 = 249 y CCPR1L = 124
Así que en PICC quedaría como:
setup_timer_2(T2_DIV_BY_4, 249, 1);
set_pwm1_duty(124); // Ciclo activo al 50 %
Entonces, si el valor máximo para un ciclo activo del 100 % es 249, CCPR1L no puede ser superior a 249
Lo que se establecería de esta forma: set_pwm1_duty(249); // Ciclo activo al 100 %
Y obviamente los registros no trabajan con decimales o variables del tipo float.
Por lo tanto, lo que propones no funciona ni tiene sentido.
Te recomiendo que leas muy bien la hoja de datos para que comprendas mejor cómo funcionan los módulos de los PIC.