Ovládání Led pásku - PORTG

To je hezké.
Zkoušel jsem tu funkci přepsat do C, ale evidentně to neumím napsat tak, aby to mělo to správné časování.
Zkoušel jsem to přes přerušení od časovače, dokonce jsem použil i _delay_us, ale pásek jsem sám nerozběhl.
Poradíte prosím, jak tu funkci přepsat tak aby to fungovalo i pro PortF a G?
Předpokládám, že se změní počet cyklů a bude se tam muset ještě něco upravit, ale na to už mé znalosti nestačí.