It looks like the 8 bit resoloution on the PWM is a bit low for you. The only soloution is to go for more bits of resoloution on the PWM and that will involve using an external chip to provide it. The TLC5940 is a popular choice, that shives you 12 bit resoloution.
You can do it in software.
TLC5940 seems interesting, it seems to be also a 16bit resolution version, but the package is not trough hole
Is it possible to do 16bit PWM in software?
What! 16 bit PWM in software? That is like 65k refreshes in 20 mS.
Is there a sample code or library to use higher frequency PWM?It can be done on every pin?
Part of the problem is that i use a HSB color library i found that uses a number from 0 to 99 for brightness, so i have less steps than direct PWM control, however 100 steps could be good.
Quote from: Grumpy_Mike on Oct 31, 2013, 11:27 pmWhat! 16 bit PWM in software? That is like 65k refreshes in 20 mS.Well, no, it isn't, because you would change the timer value on the fly rather than polling for it.Actually, the point is that you only need this resolution for the dimmest part of the cycle, so what you actually do, is to use PWM for 1 mS, and then turn the LED off for 19 - or adjust these proportions as necessary.