delayMicroseconds to millis

DKWatson:
Two things: you cannot delay for 2 microseconds or 10 microseconds.

The off-the-shelf micros() function has a resolution of 1/256th of about a millisecond, so pick 4, 8 or 12.

Nonsense. delayMicroseconds() has nothing to do with micros().

(rephrasing:)

void delayMicroseconds(unsigned int us)
{
    us = calculate_number_of_loops_based_on_F_CPU(us);
 
    __asm__ __volatile__ (
        "1: sbiw %0,1" "\n\t" // 2 cycles
        "brne 1b" : "=w" (us) : "0" (us) // 2 cycles
    );
}