Nun, ganz allgemein isses einfacher, für jeden "task" einen eigenen Zähler zu haben. sagen wir mal,
R16 für "one"
R15 für "two"
R14 für "three"
.... usw..

Also: der Timer tickert in der kleinsten Einheit
Code:
OCR:
ck_1:                 Prüfung f. routine-1
    dec   r16                        eins abziehen 
    brne  ck_2                      is null ? nö,  zum nächsten check
    ldi     r16, Zähler-1          is null, also Zähler wieder nachladen
    rcall    routine-1              routine aufrufen
ck_2:                      Prüfung f. routine-2
    dec   r15                        eins abziehen 
    brne  ck_3                      is null ? nö,  zum nächsten check
    ldi     r15, Zähler-2          is null, also Zähler wieder nachladen
    rcall    routine-2              routine aufrufen
ck_3:    .... usw...
Das ist sozusagen die "Panik"-Lösung, denn irgendwann gehen dir die Register aus, und sie dürften auch nicht ausserhalb verändert werden.

Aber für ein paar routinen kann man das schon noch so machen.