yo apenas me empiezo con el pwm, pero creo que tienes unos errores en la formula que aplicaste porque no tuviste en cuenta el Tosc, entonces yo lo diria asi, si estoy mal por favor alguien que nos corrija, de igual forma usando el buscador hay un hilo donde esta bien explicado lo del pwm.
remitiendonos a la imagen que puso akenafab de la ecuacion de PWMperiod debes despejar PR2, asi
pwmperiod
____________________ - 1 = PR2
(4)(TMR2 prescale)
(Tosc)sustituyendo tus datos da PR2=129
En adelante me confundo un poco..
si se quiere tenes un duty de 25% entonces se hace 2.03mS/4= 520.75uS, entonces con este valor despejo de la formula PWM duty cycle y hallo el valor que se debe cargar a los registros del duty, sustituyendo da 130. Es correcto?
Ahora para hallar la resolucion se aplica (Log (Fosc/Fpwm)) / Log 2 donde
Fosc= 4Mhz para el caso
sustituyendo los datos da resolucion=13 bits. De los cuales solon seran efectivos 10 bits. la explicacion esta en la imagen de akenafab, entonces
1. solo se puede poner en el duty valores que van de 0-1024?
2. Si vuelvo y despejo de la formula PWM duty cycle, no para 25% sino para 100%, es decir 2.03mS el valor a cargar es 520, esto es en resolucion 2^10=1024 , pero entonces que pasa en el pwm con los valores comprendidos entre 520 y 1024?