Programmazione CLKPR

Circa il prescaler non so risponderti, dovrei leggere il datasheet del micro.

Riguardo al resto del codice posso dirti la seguente:

Nel commento fai riferimento al fatto che toggli un pin di una porta, cioè assegni al pin il valore attuale ma invertito, detto in altri termini fai il flip di un bit di una porta.

Però io il codice che fa il flip non lo vedo.

// imposta un pin di una porta come OUTPUT
PORT? |= _BV(nbit);   // sostituisci il ? con la lettera della porta, sostituisci nbit con il nome del pin.
// es. imposta il pin PB0 (dal datasheet) della porta B come output

PORTB |= _BV(PB0);

// flip bit 0 di porta B, cioè quando viene eseguito se il valore corrente è 0 diverrà 1, accade l'inverso  prossimo cilco 
PORTB ^= _BV(PB0);

Su quei for vuoti ho il dubbio che il compilatore li compili, credo che li salti del tutto, per evitare di saltarli
inserisci una direttiva asm nop

for (.....
    asm volatile("nop\n\t"::);

Ciao.