It's not variable in the sense that you can change it, it changes as function, or relation, between the clock frequency and PWM frequency.but still, why does the datasheet, even the one for the 18F4550 'indicates' a variable bit resolution...
If you had a 1MHz clock (Fosc/4=1Mhz) and wanted a 1Mhz PWM frequency you'd get two different dutycycles, 0% and 100% -1 bit resolution (not very useful). If you lower the PWM frequency to 100kHz you'd have 10 different dutycycles available. How many bits does the value 10 occupy? Well, you can't fit it in 3 bits and 4 is more than you actually need. Using the formula in the datasheet tells us that it's 3.32 bits. Obviosuly there are no such thing as partial bits and you'd need 4 bits to actually be able to use all 10 dutycycles but writing anything "above" 10 to these four bits will result in a dutycycle of 100%.
Now, if the PWM module gives you a higher resolution than you want you can obviously "scale up" your low resolution value to fit whatever number of bits of resolution there is, as have been shown earlier.
/Henrik.
Bookmarks