Hola TOFLE
Tuviste en cuenta que el registro CCPR1L son los 8 bits mas significantes del PWM y que lo de menos valor se encuentran en el registro CCP1CON bit 5 y 4, que corresponden al 1 y 0 respectivamente.
Bueno, si en tu programa se te complica para el uso de esos 2 bits, los cálculos los puedes hace basados en el 63 (como tú lo has hecho), ¿por que?
así seria los 8 bits de definición:
00111111-11
donde los 8 primeros corresponden al registro CCPR1L
entonces no usando los dos últimos correspondientes al registro CCP1CON
nos quedarían los bits 2, 3, 4, 5, 6, 7, 8, 9, 10
00111111-sin los últimos dos
como nosotros disponíamos de una resolución de 8 bits, los 2 bits de mayor valor del registro CCPR1L no los usaremos, nos quedaría:
00111111
y suponiendo que esos son los bits, 0, 1, 2, 3, 4, 5, nos quedarían solo 6 bits para las variables, o sea que 2 elevado a la sexta = 64 (menos 1 que corresponde al 0) nos da el número que usaste tú en tus cálculos (63), bueno, hay tienes la explicación del por que no te anduvo con 8 bits, sencillo estabas queriendo hacer que funcione con 10 bits de resolución.
Pero el PWM si tiene 8 bits de resolución con los parámetros descriptos, el problema es que hay que usar el registro CCP1CON y en algunas circunstancias en complicado y lento, por lo tanto el datasheet de microchip, como no puede ser de otra forma esta correcto.
Bueno, me alegro de que llegaras a solucionar el problema, espero que la ayuda te halla servido, si tienes mas dudas hazlas saber que en la medida de las posibilidades las resolveremos.
Suerte con el proyecto.
Atte. CARLOS