In Assembler würd ich einfach -wie MeckPommER sagte- einen Timer bauen und innen ein Register inkrementieren.
Dann lediglich ein Sprung bei Carry (bedeutet, ich springe, wenn die Variable von 255 auf 0 springt). Vorteile dieser Version ist, ich muss nix auf 0 setzen, kann die Frequenz immernoch per PreScaler bestimmen und ein Vergleich (d.h. if a=b) entfällt.
Sozusagen "the shortest ISR ever". (Wobeis keine ISR im eigentlichen Sinne ist...)


@gaggi: Duos sind nicht billiger als BlinkLEDs. Bitte keine Äpfel mit Birnen vergleichen. Er meinte: Duos als Tuning der Standardlösung und die Standardlösung ist mit einer normalen LED zu nutzen. Und diese normale ist billiger als eine BlinkLED.


PS: (jaaaa - inkrementieren mit 'k' @MeckPommER - wir sind hier in Deutschland, hier gibts Inkrementierung, Kontroller und Mikrochips... Aber atmega sollten wir nicht durch AtMecka ersetzen )