Hola
La resolucion del pwm, se refiere al numero de bits necesarios para poder manipular el duty cycle del 0-100%, ahora, a pesar del resultado q te dio de 7.39 , eso quiere decir que forzosamente necesitas un numero de al menos 8 bits para manipular el duty cycle. Ahora bien para sacar el duty cycle ( de la mayoria de microcontroladores de microchip) tenemos:
PWM duty cycle=(CCPR1L:CCP1CON<5:4> ) *Tosc*(Valor del preescalador del TMR2)
Por ejemplo para los pic16Fxxx y 18F4xx el duty cycle del pwm puede manipularse con 10 bits (CCPR1L:CCP1CON<5:4> ), sin embargo tu solo requieres de 8 bits.
Dejame darte un ejemplo de como calcular el valor maximo para poder manipular el ciclo de trabajo del PWM.
Fosc = 20MHz;
FPWM=120Khz;
Prescalador del Tmr2=1;
Suponiendo que requieres trabajar del 0- 100 % del ciclo de trabajo, entonces el duty cycle tendra valores entre 0- (1/120KHz), pasando de frecuencia a tiempo tenemos---->(0 seg. ---8.3333 microseg.),
PWM duty cycle=(Valor_máx) *Tosc*(Valor del preescalador del TMR2)
8.3333 us=(Valor_max)*(1/20Mhz)*(1)
despejando Valor_max tenemos
Valor_max=8.3333 us/(50 ns)=166.6667
pero Valor_max debe ser un numero entero, entonces Valor_max=167.
Entonces el maximo valor que puedes enviar al duty cyle es 167:
set_pwm1_duty(167); // 100%
set_pwm1_duty(0); // 0%
Espero haberme explicado bien, sino por aqui estaremos nuevamente.......SALUDOS