What you are looking for is a a bunch of software PWMs. There are several threads on AAC that have various ones. Here's a thread we did awhile back that shows one firmware PWM to control the brightness of an LED desk lamp. The link points at a .zip with the C code for the project. Scan the interrupt service routine and see how we did the PWM (and other things). Multiple PWMs can be implemented with the same technique. There's lots of other stuff in the thread but the key is to compute the output value of all of the PWMs into simple variables then jam those to the IO port(s) on the interrupt. After that you have the rest of the interrupt period to compute the PWM values for the next interrupt.(2) my next step is to use interrupts to control the brightness of 1 led then move on to 4 then 8 leds & can you point me in that direction .
thank you again .
Here's a link to code tag information: