Den PWM kann man schon im Interruptshändler lassen. In Assembler solle man für jeden Kanal etwa 6-10 Zyklen brauchen, wenn die Portbits einigermaßen zusammenhängen. Bei 10 kanälen also etwa 60-100 Zyklen für die ganze ISR Routine das ist noch nicht so viel. Wenn man alle 256 Zyklen den Interrupt aufruft hätte man noch über die Hälfte der Rechenzeit übrig und käme bei 8 Bit Auflösung immer noch auf 20 MHz / 256 / 256 = 300 Hz Wiederhohlfrequenz. Flimmerfrei würden so sogar bis zu 50 LEDs gehen.