Wenns bei dem Takt um einen Takt für Schreib und Lese Operationen geht, verwendet man häufig eine kleine Routine die einen Port für kurze Zeit hoch und wieder runter schaltet.

Also

Zu übertragendes Bit auf einen Ausgang legen.

Takt:
NOP; NOP's für kurze Wartezeit
NOP
NOP
NOP
SBI PORTB,0; Taktport einschalten
NOP;Pegel kurz Stehen lassen
NOP
NOP
NOP
NOP
NOP
NOP
NOP
CBI PORTB,0; Taktport abschalten
NOP
NOP
NOP
NOP;Nochmal kurz warten
RET;Rücksrung zum Datenausgabeprogramm

Nun das nächste Bit auf den Datenport legen und wieder die Taktroutine aufrufen.
Die Anzahl der NOP's richtet sich nach der möglichen Geschwindigkeit des Ziel Chips und der Taktfrequenz.

Um einen Dauerhaften gleichbleibenden Takt für Teiler oder ähnliches zu Produzieren würd ich die OC Ausgänge in zusammenarbeit mit den Comparematch Registern eines Timers (Meistens Timer 1) benutzen.

Wenn der Timer nicht geht kann man auch einen normalen Timer benutzen und eine kleine Soft für einen Pegelwechsel im Timer Overflow Interrupt schreiben.
Das hat allerdings den Nachteil, das wenn weitere Interupts aktiv sind ein nicht vorhersehbarer Phasenjitter dabei entstehen kann.