Wprawdzie zbyt pobieżnie przeanalizowałem kod i konfiguracja timera nie ma wpływu na szybkość zapalania (zmiany jasności) diod, jednak ogólnie dla działania programu nie jest to całkiem bez znaczenia. Konfiguracja timera będzie miała wpływ na częstotliwość generowania przerwań i pośrednio na częstotliwość PWM. Jeśli częstotliwość ta będzie zbyt mała, może być widoczne migotanie diod. Jeśli będzie zbyt duża, mikrokontroler może nie nadążać z obsługą pozostałej części programu. W tej chwili nie wiadomo, jaka właściwie ta częstotliwość jest, a to, że w tej chwili działa, nie musi oznaczać, że będzie działać po rozbudowaniu programu, kiedy dojdzie obsługa UART, parsowanie i nie wiadomo co jeszcze. Dobrze byłoby więc mieć ten timer pod kontrolą.
Trzeba pamiętać, że przy programowym PWM o częstotliwości 100Hz i rozdzielczości 256 dla F_CPU=16MHz przerwania muszą występować co 625 taktów zegara, z czego sama procedura obsługi tego przerwania w tym konkretnym przypadku zajmie ok. 100 taktów, czyli ponad 15% czasu procesora. Czy to dużo czy mało to zależy od stopnia rozbudowania programu, prędkości transmisji UART, optymalności kodu, ogólnej konstrukcji programu itp.
Inna sprawa, jaka mi się rzuciła w oczy, to używanie funkcji delay() w programie, który korzysta z przerwań. Czas obsługi przerwań jest doliczany do czasów opóźnień generowanych przez funkcje delay(). Procedury obsługi przerwań nie zawsze trwają tyle samo czasu (bo nie zawsze te same warunki są spełnione lub nie), nie zawsze występują w równych odstępach czasu, więc czasy opóźnień mogą być niedokładne i niestabilne. Tutaj może te opóźnienia nie muszą być jakoś szczególnie dokładne i być może efekty niedokładnych i nierównych opóźnień nie są jakoś szczególnie widoczne, ale nie wiadomo co będzie przy dalszej rozbudowie programu, szczególnie kiedy dojdzie obsługa przerwań od UART, która występuje w przypadkowych momentach, a nie tak jak w przypadku timera regularnie.
Osobiście zamiast użyć funkcji led() w pętli głównej programu zrobiłbym to na przerwaniach, ale ja taki jestem czasami zbyt drobiazgowy i się czepiam

Jeśli tam będzie tylko transmisja UART i obsługa prostej klawiatury, to pewnie będzie działać tak jak jest. Dlatego już się nie będę tutaj wymądrzał. Życzę powodzenia
