Całość zeruję, gdy licznik dojdzie do końca (no i została jakaś zaszłość dla licznika równego 0). Ustawiam port, gdy wartość licznika jest taka, jaka ma jasno świecić dioda. Czyli wychodzi PWM.
Dla przykładu - jeśli dla diody 1 wartość jest 1, to ta dioda świeci przez resztę "cyklu PWM", jeśli jest 32 - świeci przez połowę cyklu. Czyli jak w sprzętowym PWM - licznik liczy od zera i przy pewnej wartości ustawia port, gdy dojdzie do końca port zeruje.
Sorki - odpowiedź trochę nie trafiona.
Część diod świeci stanem wysokim, część niskim - aby spełnić warunki elektryczne procesora - czyli po prostu - aby go nie upalić, gdy zaświecą wszystkie diody.
Wypisałem sobie, dla jakich wartości portów wszystkie diody świecą, ctr+C ctr+V - wkleiłem to tam gdzie potrzebowałem. Nie chciało mi się pisać ponownie ustawień portów, więc aby je zgasić - zanegowałem bitowo wartości dla świecenia.
A jest dla 63 i 0, bo coś gdzieś zmieniłem i zapomniałem tu poprawić. Nie jest to "wersja wystawowa" więc w kodzie mam kilka takich "baboli". Ale działa - co roku na święta mam trzy prawie jedno-metrowe sztuki za oknem
![Szczęśliwy :)](https://forum.atnel.pl/images/smilies/icon_e_smile.gif)
Córcia jeszcze mi podsunęła kilka "efektów" - jest fajnie
![Szczęśliwy :)](https://forum.atnel.pl/images/smilies/icon_e_smile.gif)
I to na mojej ULUBIONEJ atmega8