Problem is, as the eye's response to brightness isn't linear, when I simply control the LEDs brightness using an 8 bit value (with no compensation) they don't appear to dim smoothly. So my thought was to take the 8 bit value, use it as an index into a lookup table which would give me a higher bit value (ie a 12 or 14 bit). Do you really need 256 steps? Why not try something like a 4 bit lookup into your 8bit pwm table. That would be easier (IMO) than implementing a >8bit PWM on an 8 bit controller, and it'd also be realtively easy to move the values around to make it look the way you want it to... which is essentially the integral of the area under a sine wave That'd be unlikely, since the integral of a sine wave is another sine wave! BillW -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.