> så hur ser det ut?
Inte så "snyggt", så använd code-taggarna när du postar kod...
Om vå säger att du vill blinka med 100 Hz (för att undvika flimmer) så
har vi en hel period = 10 ms.
Sedan vill du ha t.ex 100 olika nivår, så då får vi en bas-räknare på
100 us.
Så var 100'de us så gör du följande :
1. Räka ner var och en av LED-räknarna, om någon blir "noll", släck
motsvarande LED.
2. Räkna ner huvud-räknaren, om den blir noll så återståll den till
100, ladda om alla LED-räknarna med resp "nivå" och tänd alla LED.
Enklast sätts en timer upp att genera ett interrupt var 100 us (ca,
det är inte speciellt kritiskt, så klart). Sedan går allt av sig själv,
så att säga...
Jag vet inte vilken hastighet du kör med, men vid 20 Mhz så är
100 us ca 500 instruktioner, vilket är *massor* av tid.

Ovanstående tar ca 40-50 instruktioner att göra...
Detta går att göra kompakt och bra, se t.ex (8 LEDs) :
http://www.piclist.com/techref/microchip/pwmmult-sd.htm